可以使用JSON.stringify函数将JavaScript值转换为JSON字符串。
JSON.stringify(value[, replacer[, space]])
value 转换为JSON字符串的值。
/* Boolean */ JSON.stringify(true) // '真正' /* Number */ JSON.stringify(12) // '12' /* String */ JSON.stringify('foo') // '"foo"' /* Object */ JSON.stringify({}) // '{}' JSON.stringify({foo: 'baz'}) // '{"foo": "baz"}' /* Array */ JSON.stringify([1, true, 'foo']) // '[1, true, "foo"]' /* Date */ JSON.stringify(new Date()) // '"2016-08-06T17:25:23.588Z"' /* Symbol */ JSON.stringify({x:Symbol()}) // '{}'
replacer改变字符串化过程或String和Number对象数组的功能的函数,该对象用作白名单,用于过滤要包含在JSON字符串中的value对象的属性。如果此值为null或未提供,则对象的所有属性都包含在结果JSON字符串中。
// 替代功能 function replacer (key, value) { // 筛选出属性 if (typeof value === "string") { return } return value } var foo = { foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7 } JSON.stringify(foo, replacer) // -> '{"week": 45, "month": 7}'
// 替换为数组 JSON.stringify(foo, ['foundation', 'week', 'month']) // -> '{"foundation": "Mozilla", "week": 45, "month": 7}' // 仅保留“基础”,“周”和“月”属性
space 为了便于阅读,可以将用于缩进的空格数指定为第三个参数。
JSON.stringify({x: 1, y: 1}, null, 2) // 2个空格字符将用于缩进 /* output: { 'x': 1, 'y': 1 } */
或者,可以提供字符串值以用于缩进。例如,传递'\t'将导致制表符用于缩进。
JSON.stringify({x: 1, y: 1}, null, '\t') /* output: { 'x': 1, 'y': 1 } */