JSON是独立于语言存在的,在不同的编程语言中对这种数据类型的实现不同,例如在JavaScript中使用JavaScript对象对这种数据格式进行实现,那么在java中当然是用java对象实现。
描述JSON格式数据的语法采用了JS对象字面量的表示方法,所以描述JSON的语法是js对象字面量表示法语法的一个真子集。
JSON语法详情请看这里:
1、js对象的字面量表示法与JSON语法的区别(后者是前者的真子集):
我们知道,js对于变量的命名规则是数字、字母、下划线及$符号,属性不加引号时也符合这个规则,但要是属性中有这四种之外其它的符号如"[" 或者 "."等等,属性就必须引号来表示。
示例中的三个变量都是js对象,只是前两种不符合JSON语法。
2、js字符串的字面量表示法与JSON语法的区别(后者是前者的真子集):
// 下面是js中符合JSON格式的字符串// js字符串用""(双引号)括起来// 其他的""(双引号)全部使用"\"(反斜杠)转义var JSONStr1 = "{\"name\" : \"张三\"}";// 下面的字符串不符合JSON格式,它只是一个js字符串// 名称(name)没有使用""(双引号)括起来var JSONStr2 = "{'name' : '张三'}";
JSON语法对字符串的定义:是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
JSON独立于语言而存在,任何站在语言的角度及对象层面对他的解释都是有局限性或者是错误的。
参考文章: