JavaScript中JSON对象与字符串的理解及相互转化
本文解析JavaScript中JSON格式的本质,说明原生支持无需额外引入json.js。通过代码示例展示JSON对象与字符串的区别,并介绍使用eval、toJSONString及JSON.stringify进行相互转化的具体实现方法。
JSON对象与字符串的基础概念
本文详细介绍JavaScript中JSON对象与字符串的概念理解,以及两者之间相互转化的具体实现方法,供开发者参考。
JSON对象与字符串的转化实现
<script>
var str="{'strv':["+
"{'a':'a11'},"+
" {'a':'b222'}"+
" ]}";
//如果放在一行更清楚:var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";
var str2=eval('('+str+')');
// alert(str2.strv[1].a);
var jsonob={'jsonv':[
{'j':'j111'},
{'j':'j222'}
]};
//如果放在一行更清楚:var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};
// alert(jsonob.jsonv[1].j);
/*
var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";
var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};
这样我们可以看出json对象和字符串是不一样的!
字符串就是字符串,json对象是一个对象。
虽然其内容都是我们看到的json格式,但是两者是有区别的。
我们想取出其中某个属性的值,其实是对json对象操作的(你能取出对象的属性值,但不能取出字符串的属性值,字符串没属性。)。
所以如果你拿到的是对象,那你就直接可以取值了,
例如jsonob.jsonv[1].j。
如果你拿到的是字符串,那你必须先转化成对象才可以取值,
字符串转对象有几种方法,js本身自带的是var str2=eval('('+str+')');
这里的str2就是对象了。如果你引入了json.js文件,还可以使用其中的
方法,这些都已经封装好了。
总结:json只是一种格式。符合这种格式的可以是json对象,也可以是字符串。
要取属性值只能从对象里取。所以需要两者的转化。
js自带的转化方法:
字符串转成json对象:
var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串
var jsonObject=eval('('+str+')');//json对象
json对象转成字符串:
js本身没有这样的方法,你需要自己写这样的方法,才能转化。
从上可知,js本身只可以将字符串转成json对象,
但不可以将json对象转成字符串。其实我们可以用
json.js里的方法,而且更简单。这时你要引入json.js文件。
json.js里的方法:
字符串转成json对象:
var str="{'strv':[{'a':'a11'}, {'a':'b222'} ]}";//字符串
转成json对象方法1: var myJSONObject1=str.parseJSON();
转成json对象方法2: var myJSONObject2=JSON.parse(str);
json对象转成字符串:
var jsonob={'jsonv':[ {'j':'j111'}, {'j':'j222'} ]};//json对象
转成字符串方法1:var mystr1=jsonob.toJSONString();
转成字符串方法2: var mystr2=JSON.stringify(jsonob);
*/
</script>
经过实验验证,JSON本质上是一种数据格式,JavaScript语言本身原生支持这种格式。
因此,开发者无需引入json.js文件即可直接使用JSON对象。通常引入json.js是因为该库封装了JSON对象与字符串相互转化的便捷方法,当然也存在其他实现途径。
通过上述示例,可以更清晰地辨析JSON对象与JSON字符串之间的核心区别。
此外,关于JSON操作,推荐参考以下实用的在线工具:
在线JSON代码检验、格式化及美化工具: http://tools.jb51.net/code/json
JSON在线格式化工具: http://tools.jb51.net/code/jsonformat
在线XML与JSON互相转换工具: http://tools.jb51.net/code/xmljson
JSON代码在线格式化、美化、压缩、编辑及转换工具: http://tools.jb51.net/code/jsoncodeformat
在线JSON压缩与转义工具: http://tools.jb51.net/code/json_yasuo_trans
如需了解更多JavaScript相关内容,可查看本站系列专题:《JavaScript中json操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》。
希望本文的阐述对JavaScript程序设计有所帮助。
5款主流JS在线运行工具对比:CodePen、JSFiddle与StackBlitz怎么选
2026-11-05 17:04:04
JavaScript入门书籍避坑:这些书不适合初学者
2026-11-05 16:31:15
JS使用Math.round实现保留两位小数的原理与代码
2026-11-05 15:35:55
JavaScript 原生 Date 对象怎么实现日期加减
2026-11-05 14:30:00
JavaScript函数定义的三种方式:声明、表达式与箭头函数
2026-11-05 13:50:55
