JSON.stringify() 方法用于将一个json值转为字符串;
JSON.parse() 方法用于将json字符串转化成对象;
当我们用JSON.stringify()方法将json值转为字符串时,你会发现所有字符串都连在一块,根本看不懂。
那么就有下面的解决方法了:
JSON.stringify(json,null,"\t"); //缩进一个tab
JSON.stringify(json,null,5); //缩进5个空格
有时候你会发现,如果打印这些字符串,他们还是连在一块的,这是因为html忽略了你的空格或者tab,那么就用<pre></pre>标签吧,它可以定义预格式化的文本。被包围在pre元素中的文本通常会保留空格和换行符。
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
语法
JSON.stringify(value[, replacer[, space]])
参数说明:
-
value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。
-
replacer:
可选。用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。
-
space:
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
返回值:
按照 JSON 的规范,使用 JSON.stringify() 做对象序列化时,如果一个属性为函数,那这个属性就会被忽略。还有一种情况,一个属性的值为 undefined 也会被忽略。但是,属性值为 null 则可以正常序列化这个属性,因为 null 可表示已经赋值,而 undefined 表示未定义、未赋值,所以执行 JSON.stringify 不会处理。
const replacer = function(k ,v) {
if(typeof v === 'function') {
return Function.prototype.toString.call(v)
}
return v
}
const replacer = function(k ,v) {
if(v === undefined){
return 'undefined'
}
return v
}
const replacer = function(k ,v) {
if(typeof v === 'function') {
return Function.prototype.toString.call(v)
}
if(v === undefined){
return 'undefined'
}
return v
}
JSON.stringify()方法用于将一个json值转为字符串;JSON.parse()方法用于将json字符串转化成对象;当我们用
JSON.stringify()方法将json值转为字符串时,你会发现所有字符串都连在一块,根本看不懂。那么就有下面的解决方法了:
有时候你会发现,如果打印这些字符串,他们还是连在一块的,这是因为
html忽略了你的空格或者tab,那么就用<pre></pre>标签吧,它可以定义预格式化的文本。被包围在pre元素中的文本通常会保留空格和换行符。JSON.stringify()方法用于将JavaScript值转换为JSON字符串。语法
JSON.stringify(value[, replacer[, space]])参数说明:
value:必需, 要转换的
JavaScript值(通常为对象或数组)。replacer:可选。用于转换结果的函数或数组。
如果
replacer为函数,则JSON.stringify将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回undefined,则排除成员。根对象的键是一个空字符串:""。如果
replacer是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当value参数也为数组时,将忽略replacer数组。space:可选,文本添加缩进、空格和换行符,如果
space是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果space大于 10,则文本缩进 10 个空格。space也可以使用非数字,如:\t。返回值:
按照
JSON的规范,使用JSON.stringify()做对象序列化时,如果一个属性为函数,那这个属性就会被忽略。还有一种情况,一个属性的值为undefined也会被忽略。但是,属性值为null则可以正常序列化这个属性,因为null可表示已经赋值,而undefined表示未定义、未赋值,所以执行JSON.stringify不会处理。Functionundefined