一、操作简介
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。通过序列化的方式,可以将 JSON 对象转换为字符串,传输到其他的计算机或存储到本地介质上。通过反序列,也可以将字符串转化为 JSON 对象。
该方法有三个参数。第一个是序列化的JavaScript 对象;第二个是过滤器函数,可以过滤部分属性;第三个则是缩进以及间隔控制。
// 简单示例 let obj = { name: 'Jack', age: 30, address:{ city: 'New York', state: 'NY', zip: 10001 } }; let jsonStr = JSON.stringify(obj); console.log(jsonStr);// {"name":"Jack","age":30,"address":{"city":"New York","state":"NY","zip":10001}}
二、缩进
通过第三个参数,可以指定缩进以及间隔的字符数,使 JSON 格式化输出。如果是数字,则指定每个级别的缩进字符的数目。如果是字符串,用作缩进字符;比如“\t”。
// 简单示例 let obj = { name: 'Jack', age: 30, address:{ city: 'New York', state: 'NY', zip: 10001 } }; let jsonStr = JSON.stringify(obj, null, '\t'); console.log(jsonStr); // { // "name": "Jack", // "age": 30, // "address": { // "city": "New York", // "state": "NY", // "zip": 10001 // } // }
三、数据类型
JSON.stringify() 方法能够序列化除 symbol 类型之外的大部分 JavaScript 基础数据类型,包括字符串、数字、布尔值和 null,也能序列化对象、数组和 Map 类型等复杂数据类型。
// 简单示例 let obj = { name: 'Jack', age: 30, address:{ city: 'New York', state: 'NY', zip: 10001 } }; let arr = [1, 2, 3, "apple", true, null, obj]; let jsonStr = JSON.stringify(arr); console.log(jsonStr); // [1, 2, 3, "apple", true, null, {"name":"Jack","age":30,"address":{"city":"New York","state":"NY","zip":10001}}]
四、Date 对象
JSON.stringify() 在序列化 Date 对象时,效果与 toISOString() 方法类似。
// 简单示例 let obj = { today: new Date() }; let jsonStr = JSON.stringify(obj); console.log(jsonStr); // {"today":"2022-02-22T08:00:57.150Z"}
五、函数、Symbol 和 undefined
JSON.stringify() 在序列化函数、symbol 和 undefined 时会自动将其忽略。
// 简单示例 let obj = { name: 'Jack', func: function() { console.log('Hello World'); }, age: undefined, sex: Symbol('Male') }; let jsonStr = JSON.stringify(obj); console.log(jsonStr); // {"name":"Jack"}
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/183396.html