本文详解JavaScript中JSON对象与字符串的互转方法。通过JSON.stringify可将对象转为标准字符串,而JSON.parse用于将标准JSON字符串转为对象。针对使用单引号的不规范JSON字符串,JSON.parse会报错,此时可借助eval函数配合括号包裹的方式实现转换,并提供了相应的代码示例与结果分析。
本文介绍JavaScript中JSON对象与字符串相互转换的具体实现方式,供读者参考学习。
在实际开发中,经常需要将JSON对象转换为字符串,或将类似JSON格式的字符串还原为JSON对象。本文对此类操作进行总结,梳理JavaScript中的相关处理方法。
JSON对象转字符串
一、JSON对象转换为字符串
该操作使用的API为 JSON.stringify(),只需将待转换的对象作为参数传入括号内即可。以下是一个简单的示例代码。
let json = {
msg:"json转字符串",
name:"前端林三哥",
skill:"handsome"
}
let str = JSON.stringify(json);
console.log(str);
运行结果如下所示:

整个过程非常直观简便。
字符串转JSON对象
二、字符串转换为JSON对象
此过程主要涉及两种情况。
① 标准格式的JSON字符串转换为对象 ② 非标准格式的JSON字符串转换为对象
所谓规范的JSON,是指所有键名及字符串值均使用双引号包裹。
let json2 = '{"msg":"json转字符串","name":"前端林三哥","skill":"handsome"}'
例如,当字符串内部完全使用双引号时,属于标准格式,可直接使用 JSON.parse() 将目标字符串传入括号进行解析,具体示例如下。
let json2 = '{"msg":"json转字符串","name":"前端林三哥","skill":"handsome"}'
json2 = JSON.parse(json2);
console.log(json2);
执行结果如下:

另一种情况是非标准的JSON对象。由于JavaScript是弱类型语言,开发中常出现格式不规范的情况,例如部分开发者习惯使用单引号。如下例所示。
let arr = "[{'name': '\u53d6\u6d88\u8ba2\u5355\u91cf', 'type': '1', 'value1': '<', 'value2': '100'}]";
若此时直接使用 JSON.parse() 进行解析,尝试运行代码。
结果报错如下:

出现该错误的原因在于,字符串内容并非符合规范的JSON格式。规范JSON要求所有字符串必须使用双引号,而示例中使用了单引号。因此,需采用另一种处理方式:eval('('+ str +')')。具体操作如下。
let arr = "[{'name': '\u53d6\u6d88\u8ba2\u5355\u91cf', 'type': '1', 'value1': '<', 'value2': '100'}]";
let obj = eval('('+arr+')');
console.log(obj);
运行结果如下:

可以看到转换成功。本文内容至此结束,主要作为个人技术笔记整理。
如需了解更多JavaScript相关知识,可参考本站系列教程:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》。
希望本文所述的JSON转换技巧对JavaScript程序设计有所帮助。