2

Chrome 开发者控制台是console.log这样的:

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

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

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

4

2 回答 2

3

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

var jsonObj = {person:"me","age":"30", 123:"123"};
Object.keys(jsonObj).forEach(function(key){
   console.log(typeof key)}
);
于 2017-09-09T04:52:04.057 回答
0

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

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

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

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

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

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

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

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

于 2017-09-09T06:39:31.530 回答