JSON:我有两把枪,一把叫stringify(),另一把叫pa
2018-12-13 本文已影响0人
为了战战
- JSON.stringify( value [, replacer [, space ]])
JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串,如果指定了replacer是一个函数,则可以替换值,或者如果指定了replacer是一个数组,可选的仅包括指定的属性。
value
将要序列化成 一个JSON 字符串的值。
replacer可选
如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为null或者未提供,则对象所有的属性都会被序列化。
space可选
指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;如果该参数为字符串(字符串的前十个字母),该字符串将被作为空格;如果该参数没有提供(或者为null)将没有空格。
var data = [{
name: "程咬金",
sex: "1",
age: 26
},
{
name: "程才",
sex: "0",
age: 20
},
{
name: "程新松",
sex: "1",
age: 22
},
{
name: "程功",
sex: "1",
age: 18
}
];
var str_json = JSON.stringify(data,function(key,value){
if(key == 'sex'){
return ["女",'男'][value];
}
return value;
});
console.log(str_json);
>[{"name":"程咬金","sex":"男","age":26},
{"name":"程才","sex":"女","age":20},
{"name":"程新松","sex":"男","age":22},
{"name":"程功","sex":"男","age":18}]
- JSON.parse(text[, reviver])
text
一个有效的 JSON 字符串。
reviver可选
一个转换结果的函数, 将为对象的每个成员调用此函数。
JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', function(k, v) {
console.log(k); // 输出当前属性,最后一个为 ""
return v; // 返回修改的值
});
>1
2
4
6
5
3