此 JSON 对象中键的类型是啥 yourVariable: "nothing yet"

Posted

技术标签:

【中文标题】此 JSON 对象中键的类型是啥 yourVariable: "nothing yet"【英文标题】:What is the type of the key in this JSON object yourVariable: "nothing yet"此 JSON 对象中键的类型是什么 yourVariable: "nothing yet" 【发布时间】:2017-09-09 04:14:40 【问题描述】:

Chrome 开发者控制台是 console.loging 这个:

Your JSON sent is>> yourVariable: "nothing yet"

所以我知道yourVariable: "nothing yet" JSON 对象中的值"nothing yet" 是一个字符串。但是我怎么知道密钥yourVariable的类型呢?

有没有办法只使用 Chrome 控制台来找出它?

【问题讨论】:

我猜上面的yourVariable本身就是关键。 @torazaburo 是的。但它是一个字符串还是什么?为什么它没有引号? 这是一个字符串。所有对象键都是字符串。它没有引号,因为这就是控制台显示它的方式(以及对象文字的编写方式或可以编写方式)。打开控制台并输入console.log("a": 1) 【参考方案1】:

所有对象键都是带引号或不带引号的字符串。试试这个方法看看。您可能对控制台打印感到困惑,因为控制台打印它不带引号,我们通常写带引号

var jsonObj = person:"me","age":"30", 123:"123";
Object.keys(jsonObj).forEach(function(key)
   console.log(typeof key)
);

【讨论】:

【参考方案2】:

我对这个问题的看法略有不同,它不会使您收到的 cmets 或答案无效,但值得考虑。

因为您在谈论 JSON,所以您的示例中没有内在数据类型。如JSON.org page 所述:

JSON(javascript Object Notation)是一种轻量级的数据交换 格式。人类很容易阅读和写作。这很容易 机器来解析和生成。

关键在于,JSON(表示 javascript 对象、数组等)与 javascript 中这些类型的变量之间存在差异。

如果您提醒自己 JSON 是一种序列化形式,那就更有意义了。例如,Javascript 对象可以包含函数,但 javascript 函数不是可移植的东西,因此在从 javascript 对象渲染一些 JSON 时,由创建 JSON 的语言来做它需要做的任何事情以转换它需要表示的数据,这可能包括简化以及在许多情况下删除与 JSON 不兼容的元素。

要记住的另一件事是,所有现代语言都具有可以解析 JSON 并将它们转换为在这些语言中工作的变量或对象的函数或库。这样做时,它们的参数可以完全改变 JSON 转换回实例变量的方式。

例如,在 php 中,您可以选择让 JSON 创建一个或多个 PHP 对象,或一组 php 变量。

总之,JSON 根本没有数据类型的变量。它是一种数据表示,可以跨语言移植,但语言必须解码 JSON 并创建在它们自己的运行时有效的对象或变量。

【讨论】:

以上是关于此 JSON 对象中键的类型是啥 yourVariable: "nothing yet"的主要内容,如果未能解决你的问题,请参考以下文章

如何检索json中键的特定值?

Appsetting.json 读取控制器类中键的值,空白?

是否有一个 swift 库可以让您自定义 JSON 中键的顺序?

反射应用二(获取xml中键的属性及其值)

根据对象中键的名称过滤对象数组[重复]

找出嵌套JS对象中键的出现次数