JavaScript中JSON对象与字符串互转的两种方法及不规范JSON处理

作者:青柠

时间:2026-10-22

浏览:590

本文详解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字符串转换为对象

所谓规范的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对象转字符串

另一种情况是非标准的JSON对象。由于JavaScript是弱类型语言,开发中常出现格式不规范的情况,例如部分开发者习惯使用单引号。如下例所示。


let arr = "[{'name': '\u53d6\u6d88\u8ba2\u5355\u91cf', 'type': '1', 'value1': '<', 'value2': '100'}]";

若此时直接使用 JSON.parse() 进行解析,尝试运行代码。

结果报错如下:

JSON对象转字符串

出现该错误的原因在于,字符串内容并非符合规范的JSON格式。规范JSON要求所有字符串必须使用双引号,而示例中使用了单引号。因此,需采用另一种处理方式:eval('('+ str +')')。具体操作如下。


let arr = "[{'name': '\u53d6\u6d88\u8ba2\u5355\u91cf', 'type': '1', 'value1': '<', 'value2': '100'}]";
let obj = eval('('+arr+')');
console.log(obj);

运行结果如下:

JSON对象转字符串

可以看到转换成功。本文内容至此结束,主要作为个人技术笔记整理。

如需了解更多JavaScript相关知识,可参考本站系列教程:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》。

希望本文所述的JSON转换技巧对JavaScript程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章