当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JSON字符串和JSON对象相互转化实例详解

JSON字符串和JSON对象相互转化实例详解

2019年03月31日  | 移动技术网IT编程  | 我要评论

本文实例讲述了json字符串和json对象相互转化的方法。分享给大家供大家参考,具体如下:

将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而js操作的是json对象,所以,json对象和json字符串之间的相互转换是关键

例如:

json字符串:

var str = '{ "name": "name1","sex": "m" }';

json对象:

var obj = { "name": "name1", "sex": "w" };

一、json字符串转换为json对象

要使用上面的str1,必须使用下面的方法先转化为json对象:

var obj = eval('(' + str + ')'); 
//由json字符串转换为json对象,必须把文本包围在括号中,这样才能避免语法错误: "(" + str+ ")"

或者

var obj = $.parsejson(str);
// 将json字符串转化为json对象 (jquery)

或者

var obj= str.parsejson();
//由json字符串转换为json对象

或者

var obj= json.parse(str);
//由json字符串转换为json对象

然后,就可以这样读取:

alert(obj.name);
alert(obj.sex);

特别注意:如果obj本来就是一个json对象,那么使用eval()函数转换后(哪怕是多次转换)还是json对象,但是使用parsejson()函数处理后会有问题(抛出语法异常)。

二、可以使用tojsonstring()或者全局方法json.stringify()将json对象转化为json字符串。

例如:

var str=obj.tojsonstring();
//将json对象转化为json字符

或者

var str=json.stringify(obj);
//将json对象转化为json字符
alert(str);

总结:

上面我们也看到了在进行类型转化的时候总的来说有两种,一种是javascript自带的解析器,而另一种就是json解析器,其中javascript解析器可以编译执行任何的javascript代码所以这里隐藏了一个潜在的安全问题而json解析器只能识别json文本,而不会编译脚本所以比较安全,而且json解析器的速度更快。

上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的json 修改了 api,将 json.stringify() 和 json.parse() 两个方法都注入到了 javascript的内建对象里面,前者变成了 object.tojsonstring(),而后者变成了string.parsejson()。如果提示找不到tojsonstring()和parsejson()方法,则说明您的json包版本太低。

ps:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线json代码检验、检验、美化、格式化工具:

json在线格式化工具:

在线xml/json互相转换工具:

json代码在线格式化/美化/压缩/编辑/转换工具:

在线json压缩/转义工具:

c语言风格/html/css/json代码格式化美化工具:

更多关于javascript相关内容可查看本站专题:《javascript中json操作技巧总结》、《javascript查找算法技巧总结》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript数学运算用法总结

希望本文所述对大家javascript程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网