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 相关文章推荐
extjs 初始化checkboxgroup值的代码
Sep 21 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
js小数计算小数点后显示多位小数的实现方法
May 30 Javascript
实例解析angularjs的filter过滤器
Dec 14 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
Jan 09 Javascript
Vue2.x中的父子组件相互通信的实现方法
May 02 Javascript
一个基于react的图片裁剪组件示例
Apr 18 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
Feb 13 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
基于javascript实现放大镜特效
Dec 03 Javascript
javascript实现放大镜功能
Dec 09 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实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
php命令行模式代码实例详解
2021/02/26 PHP
prototype 的说明 js类
2006/09/07 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
详解javascript void(0)
2020/07/13 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
python 如何调用远程接口
2020/09/11 Python
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
优质服务活动实施方案
2014/05/02 职场文书
学校文明单位申报材料
2014/05/06 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
水电工岗位职责
2015/02/14 职场文书
员工自我工作评价
2015/03/06 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python