经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JSJS库框架 » JavaScript » 查看文章
JSON语法与JavaScript语法的区别
来源:cnblogs  作者:anderson_1996  时间:2018/10/12 9:39:31  对本文有异议

  JSON是独立于语言存在的,在不同的编程语言中对这种数据类型的实现不同,例如在JavaScript中使用JavaScript对象对这种数据格式进行实现,那么在java中当然是用java对象实现。

  描述JSON格式数据的语法采用了JS对象字面量的表示方法,所以描述JSON的语法是js对象字面量表示法语法的一个真子集

  JSON语法详情请看这里https://www.cnblogs.com/daihu/p/9769348.html 

 

  1、js对象的字面量表示法与JSON语法的区别(后者是前者的真子集):

  1. <script type="text/javascript">
  2.     // JSON语法中,名称(name)必须要用""(双引号)包裹起来。
  3.     // 这是一个js对象,属性不加"",符合js对象的字面量表示法语法但不符合JSON语法。
  4. var jsObj1 = {
  5. name : "张三"
  6. }

  7.     // JSON语法中,值(value)可以是6种数据类型,并且这6种数据类型可以互相嵌套
        // 值(value)可以是双引号括起来的字符串(string)、数值(number)、Boolean、 null、对象(object)或者数组(array)。
        // 这是一个内部带有方法js对象,虽然属性加了"",但JSON的语法中属性的值不能是方法。
  8. var jsObj2 = {
  9. "name" : "张三",
  10. "func" : function(){
  11. alert("hello");
  12. }
  13. }
  14.     // 这是一个符合JSON数据格式的js对象,是JavaScript语言中对JSON这种数据格式的实现形式,也是我们常说的"JSON对象"。
  15.     // 这种JS对象字面量的表示方法,也就是"JSON对于其数据形式规范的语法",所以说"JSON的语法就是JS对象字面量表示法语法的一个子集"。
  16. var jsonObj = {
  17. "name" : "张三",
  18. "age" : 10
  19.        "remark" :{ "high" : 170 ,"address" : "beijinghaidian" }
  20. }
  21. </script>

  我们知道,js对于变量的命名规则是数字、字母、下划线及$符号,属性不加引号时也符合这个规则,但要是属性中有这四种之外其它的符号如"[" 或者 "."等等,属性就必须引号来表示。   

  示例中的三个变量都是js对象,只是前两种不符合JSON语法。

 

  2、js字符串的字面量表示法与JSON语法的区别(后者是前者的真子集):

  1. // 下面是js中符合JSON格式的字符串
  2. // js字符串用""(双引号)括起来
  3. // 其他的""(双引号)全部使用"\"(反斜杠)转义
  4. var JSONStr1 = "{\"name\" : \"张三\"}";
  5. // 下面的字符串不符合JSON格式,它只是一个js字符串
  6. // 名称(name)没有使用""(双引号)括起来
  7. var JSONStr2 = "{'name' : '张三'}";

   JSON语法对字符串的定义:是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

 

  JSON独立于语言而存在,任何站在语言的角度及对象层面对他的解释都是有局限性或者是错误的。

 

  参考文章:

    https://www.cnblogs.com/cdf-opensource-007/p/6380472.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号