JSON语法格式

一、JSON数据格式

       名称/值对

二、JSON值对数据类型

       数字    字符串   逻辑值    数组(在方括号中)     对象 (在花括号中)     null

     eg:

    {

     "staff":[

         {"name":"小明","age":"18"},

        {"name":"小红","age":"15"},

       {"name":"小黄","age":"20"}

       ]

  }

三、JSON解析

      eval和Json.parse

        eval在代码中使用很危险,特别是用它执行第三方的Json数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身,该方法可以捕获JSON中的语法错误

     eg1:

       (1)  var jsondata='{"staff":[{"name":"小明","age":"18"},{"name":"小红","age":"15"},{"name":"小黄","age":"20"}]}';
              var jsonbj=eval('('+jsondata+')');
              alert(jsonbj.staff[0].name)

      (2)   var jsondata='{"staff":[{"name":"小明","age":"18"},{"name":"小红","age":"15"},{"name":"小黄","age":"20"}]}';
              var jsonbj=JSON.parse(jsondata);
              alert(jsonbj.staff[0].name)

    eg2:

       (1)  var jsondata='{"staff":[{"name":"小明","age":alert(123)},{"name":"小红","age":"15"},{"name":"小黄","age":"20"}]}';
              var jsonbj=eval('('+jsondata+')');
              alert(jsonbj.staff[0].name)

             会先弹出123,再弹出小明

       (2)   var jsondata='{"staff":[{"name":"小明","age":"18"},{"name":"小红","age":"15"},{"name":"小黄","age":"20"}]}';
              var jsonbj=JSON.parse(jsondata);
              alert(jsonbj.staff[0].name)

              会报错Uncaught SyntaxError: Unexpected identifier

四、JSON校验工具(https://jsoncompare.com/#!/simple/)

 

posted @ 2018-11-21 11:13  carrieLee  阅读(1455)  评论(0编辑  收藏  举报