一、操作简介
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
微信扫一扫
支付宝扫一扫