//一般比较常用的一种复杂形式是数组结合对象的形式:
// [
// {
// "title": "a",
// "num": 1
// }, {
// "title": "b",
// "num": 1
// }, {
// "title": "c",
// "num": 1
// }
// ]
//模拟加载JSON数据字符串的过程 var json=load(‘demo.json‘); //把JSON字符串加载进来并且赋值给json变量
// var json = ‘[{ "title": "a", "num": 100 }, { "title": "a", "num": 100 }]‘;
// alert(json);
/*
ECMAScript5对解析JSON的行为进行规范,定义了全局对象JSON。支持这个对象的浏览器有IE8+、Firefox3.5+、Safari4+、Chrome和Opera10.5+。不支持的浏览器也可以通过一个开源库json.js来模拟执行。JSON对象提供了两个方法,一个是将原生JavaScript值转换为JSON字符串:stringify();另一个是将JSON字符串转换为JavaScript原生值:parse()
*/
// var box = JSON.parse(json);
// alert(box);
// alert(box[0].title);
???????// var box = [
???????// ????{ title: ‘a‘, num: 1 },
???????// ????{ title: ‘a‘, num: 2 }
???????// ];
???????// var json = JSON.stringify(box);
???????// alert(json);
???????// var box = [
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 1,
???????// ????????height: 177
???????// ????},
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 2,
???????// ????????height: 188
???????// ????}
???????// ];
???????// var json = JSON.stringify(box, [‘num‘, ‘height‘]);
???????// alert(json);
???????// var box = [
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 1,
???????// ????????height: 177
???????// ????},
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 2,
???????// ????????height: 188
???????// ????}
???????// ];
???????// var json = JSON.stringify(box, function (key, value) {
???????// ????if (key == "title") {
???????// ????????return ‘Mr.‘ + value;
???????// ????} else {
???????// ????????return value;
???????// ????}
???????// });
???????// alert(json);
???????/*
???????PS:火狐3.5和3.6在最初支持JSON的时候stringify方法有个小BUG,执行function会出错,
???????现在火狐的版本是17.0,所以3.5和3.6的市场份额可以忽略不计,没必要单独兼容。
???????*/
???????// var box = [
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 1,
???????// ????????height: 177
???????// ????},
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 2,
???????// ????????height: 188
???????// ????}
???????// ];
???????// var json = JSON.stringify(box, [‘title‘, ‘num‘], 4);
???????// alert(json);
???????// 第三个参数用来排版
???????// var box = [
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 1,
???????// ????????height: 177
???????// ????},
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 2,
???????// ????????height: 188
???????// ????}
???????// ];
???????// var json = JSON.stringify(box, null, 4);
???????// alert(json);
???????// var box = [
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 1,
???????// ????????height: 177,
???????// ????????toJSON: function () {
???????// ????????????return this.title;
???????// ????????}
???????// ????},
???????// ????{
???????// ????????title: ‘a‘,
???????// ????????num: 2,
???????// ????????height: 188,
???????// ????????toJSON: function () {
???????// ????????????return this.title;
???????// ????????}
???????// ????}
???????// ];
???????// var json = JSON.stringify(box, null, 4);
???????// alert(json);
???????var json = ‘[{ "title": "a", "num": 100 }, { "title": "a", "num": 100 }]‘;
???????var box = JSON.parse(json, function (key, value) {
???????????if (key == ‘title‘) {
???????????????return ‘Mr.‘ + value;
???????????} else {
???????????????return value;
???????????}
???????})
???????alert(box[0].title);
JSON
原文地址:http://www.cnblogs.com/gengxinnihaoma/p/7591888.html