Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON对象中的数字类型_Javascript_Json - Fatal编程技术网

Javascript JSON对象中的数字类型

Javascript JSON对象中的数字类型,javascript,json,Javascript,Json,我刚开始学习JSON: 以下哪项是正确的: var json = {"age":22} // my book writes like this 或 PHP风暴生成 argument type number is not assignable to parameter type string 为了他们两个 如果第二个是正确的,那么说明JS对象的区别。好吧,您使用的是JSON这个术语,但是您展示的示例不是JSON。如果您谈论的是普通JavaScript对象,那么您给出的两个示例都是正确的。当

我刚开始学习JSON:

以下哪项是正确的:

var json = {"age":22} // my book writes like this

PHP风暴生成

argument type number is not assignable  to parameter type string 
为了他们两个


如果第二个是正确的,那么说明JS对象的区别。

好吧,您使用的是JSON这个术语,但是您展示的示例不是JSON。如果您谈论的是普通JavaScript对象,那么您给出的两个示例都是正确的。当人们提到JSON时,他们通常指的是通过客户机/服务器交换发送的数据类型,这是非常具体的,并且有用于此的linter(例如,请参阅)。PHPStorm的错误不正确


基本上,JSON是键值对,它基本上是用于存储数据的对象

  • var json={“age”:“22”}:如果这样使用,可以得到json[“age”]和json.age这样的值,这两个值在某些情况下都很有用,返回的值是string,您需要转换它(仅需要它)
  • var json={age:22}:如果这样使用,则无法获得类似json[“”]格式的值,只能使用json.age来获取
  • var json={“age”:22}应该与使用类型as number一样好,而且您可以使用json[“age”]获取它

上面提到的场景与您的功能有关,它们的使用在Javascript中都是有效的。但在特定情况下需要引用,例如:

var obj = {
    'foo bar': 0, 
    'foo-bar': 0, 
    '': 0
}

使用JSON时,验证器/linter是一个基本工具,尤其是处理较大的数据集

通过结果发送这两个信息:

第一个验证为有效的JSON,第二个显示:

    Parse error on line 1:
        {age: 22}
    -----^
    Expecting 'STRING', '}'

这两个都是正确的,在这种情况下引号是多余的。顺便问一下,为什么PHPstorm会生成警告,我疯了吗?谢谢。那么第一个可以被认为是正常的JS对象,对吗?这就是为什么他们两个仍然可以打印值的原因。@hansf.,您给出的两个示例都是完全有效的JS对象。但是只有第一个例子是JSON数据类型(没有
var whatever=
部分)。谢谢你,我只想遵循有效的标准,但我现在相信你了@hansf.,没问题,我的朋友,很高兴它能为你工作。所以你说它们都是有效的JSON???@hansf。根据JSON验证器,var JSON={“key”:22}是正确的,如果你的JSON有很多数据,需要循环并根据它修改数据,就像for(jsonObj中的var key){console.log(jsonObj[key]);//控制台json中的值}
    Parse error on line 1:
        {age: 22}
    -----^
    Expecting 'STRING', '}'