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


Posted in Javascript onJanuary 05, 2017

本文实例讲述了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包版本太低。

Javascript 相关文章推荐
JS解决ie6下png透明的方法实例
Aug 02 Javascript
JavaScript中for..in循环陷阱介绍
Nov 12 Javascript
无刷新预览所选择的图片示例代码
Apr 02 Javascript
ExtJS中设置下拉列表框不可编辑的方法
May 07 Javascript
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
node.js中的console.error方法使用说明
Dec 10 Javascript
JavaScript实现时间倒计时跳转(推荐)
Jun 28 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
Dec 14 Javascript
JavaScript实现的select点菜功能示例
Jan 16 Javascript
Angular实现跨域(搜索框的下拉列表)
Feb 16 Javascript
微信小程序商城项目之侧栏分类效果(1)
Apr 17 Javascript
浅谈Vue render函数在ElementUi中的应用
Sep 06 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
Jan 05 #Javascript
jQuery选择器实例应用
Jan 05 #Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
Jan 05 #Javascript
javascript解析ajax返回的xml和json格式数据实例详解
Jan 05 #Javascript
Node.js中文件操作模块File System的详细介绍
Jan 05 #Javascript
Extjs让combobox写起来简洁又漂亮
Jan 05 #Javascript
JS实现给对象动态添加属性的方法
Jan 05 #Javascript
You might like
php array_walk() 数组函数
2011/07/12 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
php实现paypal 授权登录
2015/05/28 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
Vuex提升学习篇
2018/01/11 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
详解Python中time()方法的使用的教程
2015/05/22 Python
浅谈python为什么不需要三目运算符和switch
2016/06/17 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
django使用JWT保存用户登录信息
2020/04/22 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
橄榄树药房:OLIVEDA
2019/09/01 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
分公司经理任命书
2014/06/05 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
党员评议思想汇报
2014/10/08 职场文书
教师学期个人总结
2015/02/11 职场文书
活动总结书怎么写
2015/05/11 职场文书
500字作文之周记
2019/12/13 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js