JavaScript 中 JSON 字符串与对象互转方法及注意事项
本文详细解析 JavaScript 中 JSON 字符串与对象相互转换的多种实现方式。重点对比 eval、parseJSON 与原生 JSON.parse 在字符串转对象时的差异,以及 toJSONString 和 JSON.stringify 在对象转字符串时的用法。特别指出新版 API 的注入机制及版本兼容性问题,帮助开发者避免语法异常并正确选择转换工具。
例如:
JSON字符串示例如下: var str1 = '{ "name": "cxh", "sex": "man" }'; 对应的 JSON对象示例如下: var str2 = { "name": "cxh", "sex": "man" };
JSON字符串转换为JSON对象
一、JSON字符串转换为JSON对象
若需使用上述 str1 字符串中的数据,必须先将其转换为 JSON 对象格式:
//由JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
转换完成后,即可按以下方式读取属性值:
Alert(obj.name);
Alert(obj.sex);
特别注意:如果 obj 原本就是 JSON 对象,使用 eval()函数进行转换后(即使多次转换)结果仍为 JSON 对象;但使用 parseJSON()函数处理时可能会抛出语法异常。
JSON对象转化为JSON字符串
二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);
注意:
上述几种方法中,除了 eval() 函数是 JavaScript 原生内置的之外,其他方法均源自 json.js 库。较新版本的 JSON API 进行了调整,将 JSON.stringify() 和 JSON.parse() 两个方法直接注入到 JavaScript 的内建对象中,前者对应 Object.toJSONString(),后者对应 String.parseJSON()。若提示找不到 toJSONString() 和 parseJSON() 方法,说明当前使用的 json 库版本过低。
PS:本站还提供了几款功能十分强大的json解析、转换与格式化工具供大家选择使用,相信对于大家接下来的json格式数据处理会有所帮助:
在线JSON代码检验、检验、美化、格式化工具: http://tools.jb51.net/code/json
在线XML/JSON互相转换: http://tools.jb51.net/code/xmljson
json代码在线格式化/美化/压缩/编辑/转换工具: http://tools.jb51.net/code/jsoncodeformat
C语言风格/HTML/CSS/json代码格式化美化工具: http://tools.jb51.net/code/ccode_html_css_json
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
