JSON.stringify ( value [, replacer] [ , space] ) :后两个参数为可选参数,下面会介绍
将 JavaScript 值转换为JavaScript 对象表示法 (Json) 字符串。注意:value中的方法不会转换成字符串,仅转换各种值类型和数组。
参数说明:https://www.cnblogs.com/xiaoniuzai/p/6419124.html
value
- 必需。 要转换的JavaScript 值(可以支持所有数据类型,但通常传递对象或数组)。且不允许循环引用。
space
- 可选。 向返回值JSON 文本添加缩进、空格和换行符以使其更易于读取。
- 如果省略space,则将生成返回值文本,而没有任何额外空格。
- 如果 space是一个数字,则返回值文本在每个级别缩进指定数目的空格。 如果 space 大于 10,则文本缩进 10 个空格。
- 如果 space是一个非空字符串(例如“\t”),则返回值文本在每个级别中缩进字符串中的字符。
- 如果 space 是长度大于 10个字符的字符串,则使用前 10 个字符。
replacer
- 特别注意,当该参数为数组,则数组中的值表示前面对象{}中的key,只有含在数组中的key才会被返回,前提是第一个参数为对象时,为数组时则该参数会被忽略掉~~~
- 第二个参数很有意思,可以为一个过滤函数,也可以是一个数组。
- 当为数组时被序列化的值的每个属性都会经过该函数的转换和处理
- 当为数组时则第一个参数中只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中。
\t :表示空四个字符,也称缩进,相当于按一下Tab键
var arr = ["hunter","children", "age"];
ret =JSON.stringify(arr, null, '\t'); 第三个参数表示跳到下一个制表位,空格数为tab的位数(4)
ret =JSON.stringify(arr, array1, 3); 第三个参数表示每行空的字符位数(可以是1~n数字 n> 10按十个字符,即最大为10个字符)
打印结果:
"[
"hunter",
"children",
"age"
]"
针对replacer参数为数组的情况:注意前面是数组该参数为数组会被忽略掉~
var data = {
name:"niuzai",
info:{
age:18,
sex:"male"
}
};
================================================
JSON.stringify(data,['name','info','age'],'\t')
"{
"name": "niuzai",
"info": {
"age": 18 // 这里数组未含有sex则返回时会忽略掉它~~~~~~~
}
}"
注意:
字符串值以引号开始和结束。 所有 Unicode字符可括在引号中,
但必须使用反斜杠进行转义的字符除外。 以下字符的前面必须是反斜杠:
引号 (") \"
反斜杠 (\) \\
退格键 (b) \b
换页符 (f) \f
换行符 (n) \n
回车符 (r) \r
水平制表符 (t) \t
四个十六进制数字(uhhhh)