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 相关文章推荐
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
Dec 06 Javascript
jQuery中对节点进行操作的相关介绍
Apr 16 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
JavaScript中数组去除重复的三种方法
Apr 22 Javascript
jquery删除table当前行的实例代码
Oct 07 Javascript
javascript使用btoa和atob来进行Base64转码和解码
Mar 20 Javascript
基于Vue框架vux组件库实现上拉刷新功能
Nov 28 Javascript
详解微信小程序之一键复制到剪切板
Apr 24 Javascript
vue项目中使用fetch的实现方法
Apr 25 Javascript
用js简单提供增删改查接口
May 12 Javascript
WebSocket的简单介绍及应用
May 23 Javascript
layui form表单提交后实现自动刷新
Oct 25 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 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
JS的get和set使用示例
2014/02/20 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
Python中的文件和目录操作实现代码
2011/03/13 Python
Python素数检测的方法
2015/05/11 Python
Python中格式化format()方法详解
2017/04/01 Python
python实现分页效果
2017/10/25 Python
Python Requests库基本用法示例
2018/08/20 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
PHP面试题及答案一
2012/06/18 面试题
房地产项目建议书
2014/03/12 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书