Bla*_*ard 14 javascript json function
在Javascript的JSON.stringify()函数中,我偶尔会看到以下语法:
JSON.stringify(obj, null, 4)
Run Code Online (Sandbox Code Playgroud)
但是,我无法得到第二个论点,null应该做什么.只要我知道,上面的函数将一个对象作为其第一个参数,并将其转换为字符串变量.4在这种情况下,第三个参数缩进并漂亮打印结果字符串对象.但是,即使在我阅读官方文件的解释后,我也看不出第二个论点试图做什么......那么论证的作用是什么?或者只是为了接受第三个论点?(但我认为函数应该同时使用参数名称及其参数,例如,JSON.stringify(obj, space=4).我不确定Javascript中是否允许使用这种语法,所以请原谅我,如果不是.但我不知道我的期望首先是正确的,所以无论如何都想提出一个问题.
谢谢.
Pau*_*aul 14
第二个参数可以是在进行字符串化时执行替换的函数.
一个空或未定义的第二个参数意味着您要使用标准的字串,无需任何定制.
来自https://developer.mozilla.org/en-US/docs/Using_native_JSON#The_replacer_pa
从Firefox 3.5.4开始,JSON.stringify()通过使用可选参数提供了额外的自定义功能.语法是:
jsonString = JSON.stringify(value [,replacer [,space]])
value要转换为JSON字符串的JavaScript对象.
replacer一个改变字符串化过程行为的函数,或一个String和Number对象数组,用作白名单,用于选择要包含在JSON字符串中的值对象的属性.如果此值为null或未提供,则对象的所有属性都包含在生成的JSON字符串中.
space一个String或Number对象,用于将空格插入输出JSON字符串以实现可读性.如果这是一个数字,则表示用作空格的空格字符数; 如果这个数字大于10,则该数字的上限为10.小于1的值表示不应使用空格.如果这是一个String,则字符串(或字符串的前10个字符,如果长于该字符串)用作空格.如果未提供此参数(或为null),则不使用空格.replacer参数
replacer参数可以是函数或数组.作为一个函数,它需要两个参数,键和值被字符串化.找到密钥的对象作为replacer的this参数提供.最初使用表示要进行字符串化的对象的空键调用它,然后为要进行字符串化的对象或数组上的每个属性调用它.它应该返回应该添加到JSON字符串的值,如下所示:
如果返回Number,则将与该数字对应的字符串用作添加到JSON字符串时的属性值.如果返回String,则在将该字符串添加到JSON字符串时,该字符串将用作属性的值.如果返回布尔值,则在将其添加到JSON字符串时,将"true"或"false"用作属性的值(如果适用).如果返回任何其他对象,则会以递归方式将对象字符串化为JSON字符串,并在每个属性上调用replacer函数,除非该对象是函数,在这种情况下,不会向JSON字符串添加任何内容.如果返回undefined,则该属性不包含在输出JSON字符串中.注意:您无法使用replacer函数从数组中删除值.如果返回undefined或函数,则使用null.
例
function censor(key, value) {
if (typeof(value) == "string") {
return undefined;
}
return value;
}
var foo = {foundation: "Mozilla",
model: "box",
week: 45,
transport: "car",
month: 7};
var jsonString = JSON.stringify(foo, censor);
The resulting JSON string is {"week":45,"month":7}.
Run Code Online (Sandbox Code Playgroud)
如果replacer是一个数组,则数组的值指示对象中应包含在生成的JSON字符串中的属性的名称.
And*_*kin 12
如果不在JavaScript中传递第二个参数,则无法传递第三个参数.
所以null是一个占位符replacer的功能,当你需要传递space.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
| 归档时间: |
|
| 查看次数: |
22862 次 |
| 最近记录: |