语法
JSON.stringify(value[, replacer[, space]])
参数说明:
- value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。
- replacer:
可选。用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。
- space:
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
返回值:
返回包含 JSON 文本的字符串。
1.常用[object]
var user = {
name:'Tomson',
age:18,
lastName:'Smith',
family:{
father:{
name:'Tom',
age:40,
lastName:'John'
}
}
}
var jsonStr = JSON.stringify(user);
console.log(jsonStr);
//控制台输出:
// {"name":"Tomson","age":18,"lastName":"Smith","family":{"father":{"name":"Tom","age":40,"lastName":"John"}}}
2.两个参数[object,filterFunc]
var filter = function(key,value){
if(typeof value == 'string'){
return value.toUpperCase();
}
return value;
}
var jsonStr = JSON.stringify(user,filter);
console.log(jsonStr);
//控制台输出:
//{"name":"TOMSON","age":18,"lastName":"SMITH","family":{"father":{"name":"TOM","age":40,"lastName":"JOHN"}}}
3.三个参数[object,filterFunc,indent]
var jsonStr = JSON.stringify(user,filter,4);
console.log(jsonStr);
//控制台输出
{
"name": "TOMSON",
"age": 18,
"lastName": "SMITH",
"family": {
"father": {
"name": "TOM",
"age": 40,
"lastName": "JOHN"
}
}
}
小结:
JSON.stringify(args1,args2,agrs3)
args1:json对象
args2:过滤函数func(key,value)
key:遍历到的属性名key
value:遍历到的属性值value
args3:缩进的字符数
传入此参数则格式化输出,输出缩进args3个字符的json字符串