JSON.stringify()
时间: 2023-11-02 07:58:48 浏览: 138
JSON.stringify 语法实例讲解.doc
JSON.stringify() 是一个 JavaScript 方法,用于将一个对象转换为 JSON 字符串的形式。这个方法接受一个参数,即要被转换的对象。它会遍历对象的属性,并将其转换为相应的 JSON 格式。如果对象中的属性具有 toJSON() 方法,那么该方法将会覆盖默认的序列化行为,它会在序列化之前调用 toJSON() 方法,并将返回值进行序列化。这个方法常用于将 JavaScript 对象转换为可以在网络传输或存储的字符串形式。
例如,在下面的代码中,我们创建了一个名为 userInfo 的对象,它包含 name 和 age 两个属性。通过调用 JSON.stringify(userInfo),我们可以将 userInfo 对象转换为一个 JSON 字符串,它的格式如下:{"name":"zs","age":20}。
```
const userInfo = { name: 'zs', age: 20 };
console.log(JSON.stringify(userInfo)); // {"name":"zs","age":20}
```
需要注意的是,JSON 不是 JavaScript 的严格子集,因此在 JSON 中不需要省略 Line separator 和 Paragraph separator 这两个字符。但是在 JavaScript 中,我们需要将它们进行转义处理,以免产生语法错误。稍有不慎,可能导致 "SyntaxError: unterminated string literal" 错误。
如果你想在 JSONP 中使用 JSON,可以使用一个带有替换字符的函数 jsFriendlyJSONStringify(),它可以将 Line separator 和 Paragraph separator 转义成 Unicode 字符。这样,即使在控制台打印时,Unicode 字符也不会被解码。以下是一个示例代码:
```
function jsFriendlyJSONStringify(s) {
return JSON.stringify(s)
.replace(/\u2028/g, '\\u2028')
.replace(/\u2029/g, '\\u2029');
}
var s = {
a: String.fromCharCode(0x2028),
b: String.fromCharCode(0x2029)
};
console.log(jsFriendlyJSONStringify(s)); // {"a":"\u2028","b":"\u2029"}
```
总而言之,JSON.stringify() 是一个非常有用的方法,通过它我们可以将 JavaScript 对象转换为 JSON 字符串,以便于在不同环境下传输和存储数据。
阅读全文