引言:JSON跟XML一样是种数据格式,在JAVASCRIPT中读写结构化数据的更好的方式,不必创建DOM对象。而且并不是只有JS才使用JSON,毕竟JSON只是一种数据格式,很多编程语言都有针对JSON的解析器和序列化器。
内容:•JSON语法•解析JSON •序列化JSON
语法
JSON语法可以表示一下三种类型的值。
♣简单值:可以是字符串、数值、布尔值、和NULL。如:“HELLO WORLD”,1,TRUE
♣对象:表示一组复杂的键值,允许嵌套。如:
♣数组:表示一组有序的列表,可以通过数值索引访问其中的值。如:
也可以把数组和对象结合起来构造复杂点的数据集合。如:
1 [ 2 { 3 "name":"cheng", 4 "age":22, 5 "sex":"man", 6 "jobInfo":{ 7 "city":"上海", 8 "Company":"某某" 9 }, 10 "skill":[ 11 "c#", 12 "js", 13 "java", 14 "sqlserver" 15 ] 16 }, 17 { 18 "name":"cheng", 19 "age":23, 20 "sex":"man", 21 "jobInfo":{ 22 "city":"上海", 23 "Company":"某某" 24 }, 25 "skill":[ 26 "c#", 27 "js", 28 "java", 29 "sqlserver" 30 ] 31 }, 32 { 33 "name":"cheng", 34 "age":24, 35 "sex":"man", 36 "jobInfo":{ 37 "city":"上海", 38 "Company":"某某" 39 }, 40 "skill":[ 41 "c#", 42 "js", 43 "java", 44 "sqlserver" 45 ] 46 } 47 ]
2.解析与序列化。ECMASCRIPT5定义了一个原生的JSON对象,可以用来将对象序列化为JSON字符串或者将JSON数据解析为JS对象。通过stringify()和parse()方法分别实现上述两项功能。
♣把JS对象序列化为JSON字符串:JSON.stringify(参1[必选],参2[可选,过滤器功能,可以是数组也可以是函数],参3[可选,JSON字符串格式化比如缩进如5个空格等])
实例:
var myInfo = { "name": "cheng", "age": 24, "sex": "man", "jobInfo": { "city": "上海", "Company": "某某" }, "skill": ["c#", "js", "java", "sqlserver"] }; var jsonText = JSON.stringify(myInfo, ["name", "age"], 5); document.write(jsonText); 显示:{ "name": "cheng", "age": 24 }可以看出通过第二个参数的过滤后只包含这两个属性。
♣把JSON字符串解析成JS对象:JSON.parse(参1[必选],参2[可选]一个转换结果的函数。)
var myInfoCopy = JSON.parse(jsonText); document.write(myInfoCopy.name);
如果一个DATE类型序列化后,还原的时候需要经过转换的。如:
var myInfo = { "name": "cheng", "age": 24, "sex": "man", "jobInfo": { "city": "上海", "Company": "某某" }, "skill": ["c#", "js", "java", "sqlserver"], releaseDate:new Date(2012,9,19) }; var jsonText = JSON.stringify(myInfo); var myInfoCopy = JSON.parse(jsonText, function(key, value) { if (key == "releaseDate") { return new Date(value); } else { return value; } }); document.write(myInfoCopy.releaseDate.getFullYear());
之前是天天看别人的博客,通过本人第一次写博客,体会到了写博客的。。。。你懂得,再次向所有博主致敬。