JSON是一种轻量级的数据交换格式,提供了在不同编程语言之间交换数据的标准格式。在JavaScript中,JSON对象提供了一种方便的方式将JavaScript对象转换成JSON格式的字符串或者将JSON格式的字符串转换成JavaScript对象。而JSON.stringify()和JSON.parse()就是这两种转换方式。
JSON.stringify(obj)
JSON.stringify()方法接收一个JavaScript对象作为参数,并将其转换成JSON格式的字符串。在转换过程中,除了undefined,函数和symbol三种类型的属性会被自动忽略外,其他类型的属性都会被转换成对应的JSON数据类型。
以下是一个示例:
const obj = {
name: 'Diana',
age: 32,
isMarried: true,
hobbies: ['reading', 'traveling', 'cooking'],
address: {
city: 'Beijing',
street: 'No. 1 Street',
postcode: '100010'
}
};
const jsonString = JSON.stringify(obj);
console.log(jsonString);
// 输出: {"name":"Diana","age":32,"isMarried":true,"hobbies":["reading","traveling","cooking"],"address":{"city":"Beijing","street":"No. 1 Street","postcode":"100010"}}
从上面的示例可以看出,我们利用JSON.stringify()将一个JavaScript对象转换成了对应的JSON格式字符串。在转换过程中,属性名和属性值之间用冒号分隔,不同属性之间用逗号分隔,整个对象用一对花括号包围。
JSON.parse(string)
JSON.parse()方法接收一个JSON格式的字符串作为参数,并将其转换成对应的JavaScript对象。JSON格式的字符串必须满足一定的格式要求,否则将会抛出异常。在转换过程中,JSON.parse()方法会将JSON格式的字符串还原成对应的JavaScript数据类型。
以下是一个示例:
const jsonString = '{"name":"Diana","age":32,"isMarried":true,"hobbies":["reading","traveling","cooking"],"address":{"city":"Beijing","street":"No. 1 Street","postcode":"100010"}}';
const obj = JSON.parse(jsonString);
console.log(obj);
// 输出: { name: 'Diana', age: 32, isMarried: true, hobbies: ['reading','traveling','cooking'], address: { city: 'Beijing', street: 'No. 1 Street', postcode: '100010' } }
从上面的示例可以看出,我们利用JSON.parse()将一个JSON格式字符串转换成了对应的JavaScript对象。在转换过程中,JSON.parse()会将属性名和属性值之间的冒号去掉,用双引号包围所有的属性名,对于数组和对象,用一对方括号或一对花括号包围,而且值必须用引号括起来。
综上所述,JSON.stringify()和JSON.parse()都是将JavaScript对象和JSON格式的字符串相互转换的方法。使用时要遵循转换的规则,尽量避免在JSON格式中使用不被允许的语法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string) - Python技术站