JSON:JavaScript Object Notation(JavaScript对象表示法)
JSON是存储和交换文本信息的语法。类似XML。
JSON比XML更小、更快、更容易解析。
1、语法
JSON语法是JavaScript对象表示语法的子集。
1)、数据在名称/值对中
2)、数据由逗号分隔
3)、大括号保存对象
4)、中括号保存数组
JSON的语法可以表示以下三种类型的值。
1)、简单值:可以再JSON中表示字符串、数值、布尔值和null。但是不支持undefined。(JSON字符串必须使用双引号)
5 //JSON表示数值5 "Hello world" //JSON字符串
2)、对象:表示的是一组无序的键值对儿。(JSON中对象的属性名任何时候都必须加双引号)
{ "name":"LuckyFBB", "age":18, "school":{//在对象之中嵌入对象 "name":"College", "location":"China" } }
用for-in来循环对象属性
var info={ "name":"LuckyFBB", "age":18, "city":"Chong qing" } for(x in info){ alert(x+":"+info[x]);//x为属性,info[x]为属性值 }
3)、数组:表示的是一组有序的是的列表。
[ { "name":"LuckyFBB", "age":18, "school":{//在对象之中嵌入对象 "name":"College", "location":"China" } }, { "name":"FBB", "age":18, "school":{//在对象之中嵌入对象 "name":"College", "location":"China" } }, { "name":"Lucky", "age":18, "school":{//在对象之中嵌入对象 "name":"College", "location":"China" } } ]
2、解析与序列化
JSON之所以流行拥有与JavaScript类似的语法并不是全部原因。更重要的一个原因是,可以把JSON数据结构解析为有用的JavaScript对象。与XML数据结构要解析成DOM文档而且从中提取数据极为麻烦相比,JSON可以解析为JavaScript对象的优势极其明显。
JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript值。
var info={ "name":"LuckyFBB", "age":18, "city":"Chong qing" } var infoText=JSON.stringify(info);//"{"name":"LuckyFBB","age":18",city":"Chong qing"}" var infoCopy=JSON.parse(infoText);//Object {name: "LuckyFBB", age: 18, city: "Chong qing"}
stringify()可以 接受两个参数,第一个参数是个过滤器(可以数组也可以是函数),第二个参数是一个选项,表示JSON字符串中保留缩进。
数组:
var info={ "name":"LuckyFBB", "age":18, "city":"Chong qing" } var infoText=JSON.stringify(info,["name","age"];
本人正在学习和摸索中,如有错误,欢迎指正!