JSON的用法与使用(1)

来源:互联网 发布:volatile java 优缺点 编辑:程序博客网 时间:2024/06/03 14:12

前言:

        JSON(JavaScript Object Notation)是一种数据交换的格式,也就是说JSON是一种标准的数据的格式写法,由于其轻便易读的优点,可以很方便的获取其值,特别在ajax中数据传输的交换格式JSON相对方便易读。


一. JSON的写法

        按照说法有JSON字符串和JSON对象两种情况,其实就思想上来说,JSON对象其实就是以特定的写法形式来命名一个对象,而json字符串则是在字符串环境下写的以JSON的写法形式写的字符串   比如:

  <!-- json对象-->    var test1 = {"a":1,"b":1};    var test2 = {a:123,"b":123};    console.log(test1);    console.log(test2);

        可以看到控制台确实两种方式输出了object类型,说明在创建直接JSON对象时键值可以是字符串也可以不是,这里我认为非字符串是隐式声明变量,下面再来看看JSON字符串:

 <!-- json字符串-->    var test3 = '{"a":1,"b":2}';    var erro = '{a:1,"b":2}';    console.log(test3);    <!-- json字符串转化为对象-->    var test4 =  JSON.parse(test3);    console.log(test4);  <!--var result =  JSON.parse(erro);-->

        可以发现json字符串的格式有了特别规定,这里要求了JSON字符串 在字符串环境下的键值必须是字符串,如果不是那么在使用JSON.parse();反序列化时便会报错也因此在写JSON字符串时建议一定要将键值写完字符串格式。当然还是有其他办法使变量result接收到erro的反序列化后的对象,这便是eval():

  var test5 = eval('('+erro+')');    console.log(5);

        利用eval()计算字符串内的结果的方式可以转化成创建JSON对象的方式,但一般来说并不建议使用eval()的方式实现反序列化,因为eval()本身的特性,不容易调试还特别容易用错比如:

  var test6 = eval(erro);

便会直接报错,所以总的来说为了规范JSON写法建议在创建JSON对象或者JSON字符串时键值用字符串格式.





 
原创粉丝点击