JSON 是一种文本格式,主要用来作为前后端数据交互的标准格式。在使用 JSON 的时候,经常需要使用 JSON 的三个核心函数:JSON.stringify()
、JSON.parse()
、toJSON()
,这三个函数分别用于将 JavaScript 数据转换为 JSON 字符串或者反向转换,或自定义数据格式。
JSON.stringify()
JSON.stringify()
用于将 JavaScript 对象转换为 JSON 字符串。
let obj = {name:"John", age:30, city:"New York"};
let jsonObj = JSON.stringify(obj);
console.log(jsonObj); // {"name":"John","age":30,"city":"New York"}
比如我们定义了一个 JavaScript 对象 obj
,然后通过 JSON.stringify()
将其转换为 JSON 字符串 jsonObj
,最后输出 jsonObj
。
上面的代码中,可以注意到,即使我们在定义 obj
时使用的是单引号,但是通过 JSON.stringify()
转换后的结果中却使用的是双引号。这是因为 JSON 标准中规定了属性名和字符串值必须使用双引号,而不是单引号。
在 JSON.stringify()
中还可以接受第二个参数,用来指定细节设置。比如定义输出的 JSON 字符串有缩进和换行,这样能够使得 JSON 字符串更易读和排版美观。
let obj = {name:"John", age:30, city:"New York"};
let jsonObj = JSON.stringify(obj, null, 2);
console.log(jsonObj);
// {
// "name": "John",
// "age": 30,
// "city": "New York"
// }
上面的代码中,第二个参数 null
表示没有任何筛选,第三个参数 2
表示输出的 JSON 字符串使用两个空格作为缩进。
JSON.parse()
JSON.parse()
用于将 JSON 字符串转换为 JavaScript 对象。
let jsonStr = '{"name":"John","age":30,"city":"New York"}';
let jsonObj = JSON.parse(jsonStr);
console.log(jsonObj); // { name: 'John', age: 30, city: 'New York' }
比如我们定义了一个 JSON 字符串 jsonStr
,然后通过 JSON.parse()
将其转换为 JavaScript 对象 jsonObj
,最后输出 jsonObj
。
在使用 JSON.parse()
进行字符串转换时,要注意该函数是不安全的,因为当 JSON 字符串包含恶意代码时,很可能会导致代码执行。为了避免这个问题,可以使用一个安全的 JSON 解析器(如JSON.minify)来进行 JSON 字符串的解析。
toJSON()
toJSON()
是 JavaScript 对象的一个特殊方法,用于将其它类型的数据转换为 JSON 格式。
let person = {
name: 'john',
age: 20,
toJSON: function() {
return {
name: this.name.toUpperCase(),
age: this.age
};
}
};
let jsonObj = JSON.stringify(person);
console.log(jsonObj); // {"name":"JOHN","age":20}
在上面的代码中,定义了一个对象 person
,其中包含了一个 toJSON()
方法。该方法将 person
对象转换为一个包含 name
和 age
属性的新对象。最后,我们将 person
转换为 JSON 字符串,输出结果为 {"name":"JOHN","age":20}
。可以发现,name
的值已经被转换为全大写字母。
总结
以上就是对于 JSON 的三个核心函数 JSON.stringify()
、JSON.parse()
、toJSON()
的介绍。在实际开发中,需要根据具体的业务需求和数据处理方式来选择适当的 JSON 函数进行处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈JSON中stringify 函数、toJosn函数和parse函数 - Python技术站