下面是关于JS中对象与字符串的互相转换详解:
对象转字符串
在JS中,对象转成字符串通常使用JSON.stringify()函数,该函数将JavaScript对象转换为字符串,序列化过程中字符串中的对象、数组等会自动转成字符串。
以下是转换过程及示例代码:
基础用法
let obj = {name: 'Mike', age: 20, hobby: ['reading', 'music']};
let str = JSON.stringify(obj);
console.log(str); // 输出: {"name":"Mike","age":20,"hobby":["reading","music"]}
转换过程中注意事项
在使用JSON.stringify函数时,注意以下几点:
-
循环引用对象会导致异常:循环引用对象指的是两个或多个对象相互引用,导致调用JSON.stringify()函数时,会引发异常。
-
函数、Symbol 等无法序列化成字符串:由于函数、Symbol等无法被序列化成字符串,因此在调用JSON.stringify函数时,会被忽略或转换为null。
示例代码:
const test1 = {a: 1, b: 'test'};
test1.c = test1;
console.log(JSON.stringify(test1)); // 输出: Uncaught TypeError: Converting circular structure to JSON
const test2 = {foo: function(){}, bar: Symbol()};
console.log(JSON.stringify(test2)); // 输出: {}
字符串转对象
在JS中,字符串转成对象通常使用JSON.parse()函数,该函数将字符串反序列化为JavaScript对象。
以下是转换过程及示例代码:
基础用法
let str = '{"name":"Mike","age":20,"hobby":["reading","music"]}';
let obj = JSON.parse(str);
console.log(obj); // 输出: { name: 'Mike', age: 20, hobby: [ 'reading', 'music' ] }
转换过程中注意事项
使用JSON.parse()函数时,注意以下几点:
-
对象的键名必须为双引号包裹的字符串:“JSON 格式要求属性名必须加双引号”。
-
无效的 JSON 字符串会导致异常:如果输入的不是一个合法的 JSON 字符串,将会导致语法错误(syntax error)。
示例代码:
const obj1 = JSON.parse('{name:"Mike",age:20}'); // 错误的用法,输出:Uncaught SyntaxError: Unexpected token n in JSON at position 1
综上所述,以上就是JS中对象与字符串的互相转换的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS中对象与字符串的互相转换详解 - Python技术站