码迷,mamicode.com
首页 > Web开发 > 详细

JSON对象的解析,JSON.stringify()/JSON.parse()的用法

时间:2016-03-14 13:33:47      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

ECMAScript 5 对解析 JSON 的行为进行规范,定义了全局对象 JSON 。支持这个对象的浏览器有 IE 8+、Firefox 3.5+、Safari 4+、Chrome

Opera 10.5+。

JSON 对象有两个方法: stringify() 和 parse() 

用法如下:

JSON.stringify()的用法/参数介绍

1、JSON.stringify(jsonObj),jsonObj为JSON数据,该方法是将JSON格式的数据,序列化成字符串类型

var bigWeb= {
name:‘zdw‘,
sex:‘man‘,
birth:‘1989‘
};

var jsonText = JSON.stringify(bigWeb);
console.log(jsonText)
// jsonText 输出:"{"name":"zdw","sex":"man","birth":"1989"}"

2、JSON.stringify(jsonObj,arr),arr可以为自定义要输出的属性如[‘name‘],参考如下代码1,也可以是一个方法如下代码2

代码2:Firefox 3.5 和 3.6 对 JSON.stringify() 的实现有一个 bug,在将函数作为该方法的第二个参数时这个 bug 就会出现,即这个函数只能作为过滤器:返回 undefined 意味着要跳过某个属性,而返回其他任何值都会在结果中包含相应的属性。Firefox 4 修复了这个 bug


//代码1

var bigWeb= {
name:‘zdw‘,
sex:‘man‘,
birth:‘1989‘
};

var jsonText = JSON.stringify(bigWeb,[‘name‘]);
console.log(jsonText)
//jsonText 输出:"{"name":"zdw"}"
//代码2

var bigWeb= {
name:‘zdw‘,
sex:‘man‘,
birth:‘1989‘
};

var jsonText = JSON.stringify(book, function(key, value){
switch(key){
  case "name":
    return value;
  case "sex":
    return 5000;
  case "birth":
    return undefined;//返回undefined则该属性在输出的时候将被过滤
  default:
    return value;
}
});

//输出:"{"name":"zdw","sex":"man","birth":"1989"}"

3、JSON.stringify(jsonObj,arr,num|string) 方法的第三个参数,num(大于10,按10处理)为数值类型用于控制结果中的缩进和空白符,使用如下代码1,如果是自定义字符串string,使用如下代码2


//代码1
var bigWeb= {
name:‘zdw‘,
sex:‘man‘,
birth:‘1989‘
};

var jsonText = JSON.stringify(bigWeb,[‘name‘],4);
//结果自己看下输出看下

  

//代码2

var bigWeb= {
name:‘zdw‘,
sex:‘man‘,
birth:‘1989‘
};

JSON.stringify(bigWeb,null,‘--‘);

//输出如下:

"{
--"name": "zdw",
--"sex": "man",
--"birth": "1989"
}"

JSON.parse()的用法/参数介绍

 1、JSON.parse(jsonText),jsonText为JSON格式的字符串,该方法是将JSON格式的字符串,序列化成JSON数据,与JSON.stringify()作用相反,使用代码如下:

var bigWeb= {
name:‘zdw‘,
sex:‘man‘,
birth:‘1989‘
};

var jsonText = JSON.stringify(bigWeb);
JSON.parse(jsonText)
输出格式如下:{name: "zdw", sex: "man", birth: "1989"}

1、JSON.parse(jsonText,fn),fn该参数是一个函数,将在每个键值对儿上调用,如果还原函数返回 undefined ,则表示要从结果中删除相应的键;如果返回其他值,则将该值插入到结果中,代码如下:

var bigWeb= {
name:‘zdw‘,
sex:‘man‘,
birth:‘1989‘
};

var jsonText = JSON.stringify(bigWeb);
var jsonData = JSON.parse(jsonText,function(key,value){
  if(key == ‘name‘){
    return value;
  }else if(key== ‘birth‘){
    return 1999;
  }else if(key == ‘sex‘){
    return undefined;
  }else{//这个else一定要加。。。否则输出的结果为undefined
    return value;
  }
})

//输出的结果:{name: "zdw", birth: 1999}

 

 

JSON对象的解析,JSON.stringify()/JSON.parse()的用法

标签:

原文地址:http://www.cnblogs.com/xxxdw/p/5275190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!