标签:
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。
JSON的四个基本规则
1.并列的数据之间用逗号(",")分隔
2.映射用冒号(":")表示
3.并列数据的集合(数组)用方括号("[]")表示
4.映射的集合(对象)用大括号("{}")表示
举例:
北京市的面基为16800平方公里,常住人口1600万人。上海市的面基为6400平方公里,常住人口1800万。
转换成JSON格式后:
[ {"城市":"北京","面积":16800,"人口":1600}, {"城市":"上海","面积":6400,"人口":1800} ]
JSON优点:
1.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。
2.支持多种语言,包括ActionScript,C,C#,ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等服务器端语言,便于服务器端的解析。
JSON缺点:
1.要求字符集 必须是Unicode,受约束性强
2.语法过于严谨,必须遵循JSON语法四个原则
JSON的语法可以表示三种类型的值:
1.简单值:使用与JavaScript相同的语法,可以在JSON中表示字符串、数值、布尔值和null,不支持undefined;
JSON表示字符串的方式:“Hello world"(JSON字符串必须使用双引号)
2.对象
对象作为一种复杂数据类型,表示一组无序键值对。每个键值对中的值可以是简单值,也可以是复杂数据类型的值;
与JavaScript的对象字面量相比,JSON对象有两个不一样的地方,首先没声明变量,其次,没有末尾的分号;
JavaScript创建对象字面量:(标准写法中属性不用引号,也可以加上引号)
var object={ name:"Andy", age:29 };
JSON对象:
{ "name":"Andy", "age":29, "school":{ "name":"Hubei Univercity", "location":"Wuchang" } }
3.数组:数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数组索引来访问其中的值。数组的值也可以是任意类型——简单值、对象或数组。
JavaScript中的数组字面量:
var values=[25,"hi",true];
JSON中把数组和对象结合起来:
{ { "title":"Javascript", "authors":[ "zhangsan" ], edition:3, year:2013 }, { "title":"HTML", "authors":[ "zhangsan", "lisi" ], edition:3, year:2013 },
{
"title":"Css",
"authors":[
"wangwu"
],
edition:1,
year:2011
}
}
JSON数据结构能够被解析为有用的JavaScript对象
把解析JSON数据结构后得到的对象保存到变量books中后,下面一行代码就可取到第三本书的书名
books[2].title
在DOM结构中查找数据的代码:
doc.getElementsByTagName("book")[2].getAttribute("title");
JSON对象有两个方法:stringify()和parse(),在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript值
var book = { "title":"Javascript", "authors":[ "zhangsan" ], edition:3, year:2013 };
var jsonText=JSON.stringify(book);
var bookCopy=JSON.parse(jsonText);
book和bookCopy虽然有相同的属性,但是它们是两个独立的、没有任何关系的对象
标签:
原文地址:http://www.cnblogs.com/luoyanan/p/5467340.html