您的位置:首页 > Web前端 > JavaScript

Json研究系列之——入门简介

2016-10-09 17:52 337 查看

引言

        由于没有系统的学习,所以只是在项目中总是用到json,没有真正的总结过json。不能这样,还是抽个时间来说说吧……

Json简介

         JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

        我们都知道XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。

Json语法规则

         1、数据在键值对中

         2、数据由逗号分隔

         3、花括号保存对象

         4、方括号保存数组

Json的两种结构

   对象

         对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔。例如:

<span style="font-size:18px;">{
key1:value1,
key2:value2,
...
}</span>
       其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组

数组

        数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成。例如:

<span style="font-size:18px;">[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]</span>

字符串、json字符串和json对象

         字符串:指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';

         Json字符串:指的是符合json格式要求的js字符串。例如:varjsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";

         Json对象:指符合json格式要求的js对象。例如:varjsonObj = { StudentID: "100", Name: "tmac", Hometown:"usa" }

Json.parse——将json格式的字符串转换成json对象

<span style="font-size:18px;">var str ='{"name":"小强","age":16,"msg":["a","b"],"regex":"^http://.*"}';
var json = JSON.parse(str);
console.log("name:" + json.name);
console.log("msgLen:" +json.msg.length);

// 结果
// name:小强
// msgLen:2</span>

Json.stringify——将json对象转换成json格式的字符串

<span style="font-size:18px;">var json = {"name":"小强","age":16,"msg":["a","b"],"regex":"^http://.*"};
var str = JSON.stringify(json);
console.log("json:" + str);
console.log("jsonLen:" +str.length);

// 结果
// json:{"name":"小强","age":16,"msg":["a","b"],"regex":"^http://.*"}
// jsonLen:60</span>

Json优点

1、  简化了数据访问

        在json中使用的这些数据分隔符, JavaScript引擎对数据结构(如字符串、数组、对象)的内部表示恰好与这些符号相同。这将开创一条比DOM技术更为便捷的数据访问途径。

2、  非冗长性

        在XML中,打开和关闭标记是必需的,这样才能满足标记的依从性;而在JSON中,所有这些要求只需通过一个简单的括号即可满足。在包含有数以百计字段的数据交换中,传统的XML标记将会延长数据交换时间。目前还没有正式的研究表明JSON比XML有更高的线上传输效率;人们只是通过简单的字节数比较发现,对于等效的JSON和XML有效负载,前者总是小于后者。至于它们之间的差距有多大,特别是在新的XML压缩格式下它们的差距有多大,有待进一步的研究。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: