JSON.stringify() 函数,顾名思义,将 JavaScript 值转换为序列化的 JSON 字符串.
JSON.stringify()
可以选择使用替换函数 来使用自定义逻辑替换值.
1. 语法
JSON.stringify()
方法的语法是:
JSON.stringify(value[, replacer[, space]])
1.1. 方法参数
- value (必需)– 需要转换为 JSON 字符串的 JavaScript 对象.
- replacer (可选) – 改变字符串化过程行为的函数。如果未提供替换函数,则对象的所有属性都将包含在生成的 JSON 字符串中.
- space (可选) – 用于缩进。用于将空格插入到输出 JSON 字符串中以提高可读性的字符串或数字.
如果这是一个数字,则表示用作空白的空格字符数.
2. JSON.stringify() 示例
console.log( JSON.stringify({ x: 5, y: 6 }) );
console.log( JSON.stringify({ x: 5, y: 6 }, null, ' ') ); //with space
程序输出.
{"x":5,"y":6}
{
"x": 5,
"y": 6
}
3. JSON.stringify() 替换函数示例
var unmaskedData = { "name":"Lokesh", "accountNumber":"3044444444", "city":"New York"};
var maskedData = JSON.stringify( unmaskedData, maskInfo );
function maskInfo (key, value) {
var maskedValue = value;
if (key == "accountNumber")
{
if(value && value.length > 5) {
maskedValue = "*" + maskedValue.substring(value.length - 4, value.length);
} else {
maskedValue = "****";
}
}
return maskedValue;
}
程序输出.
{
"name": "Lokesh",
"accountNumber": "*4444", //Masked account number
"city": "New York"
}
阅读更多:替换函数的使用.
4. 处理未定义的值
JSON.stringify()
使用未定义的值时执行以下操作之一:
- 如果该值是对象的一部分,则省略该值
- 如果该值属于数组,则将该值转换为 null
在给定的示例中,序列化的 JSON 中省略了name
。此外,数组admins
中的undefined将转换为 null.
var siteInfo = {
"name" : undefined,
"users" : [
[ "admins", "1", "2" , undefined],
[ "editors", "4", "5" , "6"],
]
}
console.log( JSON.stringify(siteInfo) );
程序输出.
{"users":[ ["admins","1","2",null], ["editors","4","5","6"] ]}