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 相关文章推荐
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
Apr 29 Javascript
jQuery中 attr() 方法使用小结
May 03 Javascript
jQuery中prepend()方法使用详解
Aug 11 Javascript
JavaScript中数组的合并以及排序实现示例
Oct 24 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
ES6中class类用法实例浅析
Apr 06 Javascript
微信网页授权并获取用户信息的方法
Jul 30 Javascript
对VUE中的对象添加属性
Sep 18 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
Dec 11 Javascript
vue用elementui写form表单时,在label里添加空格操作
Aug 13 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.MVC的模板标签系统(五)
2006/09/05 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
Js中sort()方法的用法
2006/11/04 Javascript
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
js判断密码强度的方法
2020/03/18 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
使用PYTHON创建XML文档
2012/03/01 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
中医专业应届生求职信
2013/11/17 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
公司寄语大全
2014/04/10 职场文书
财务工作失误检讨书
2015/02/19 职场文书
工作失职检讨书范文
2015/05/05 职场文书
如何写新闻稿
2015/07/18 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
Python sklearn分类决策树方法详解
2022/09/23 Python