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 相关文章推荐
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
Mar 22 Javascript
JavaScript中继承的一些示例方法与属性参考
Aug 07 Javascript
javascript时区函数介绍
Sep 14 Javascript
JavaScript控制Session操作方法
Jan 17 Javascript
JQuery切换显示的效果实例代码
Feb 27 Javascript
JS.elementGetStyle(element, style)应用示例
Sep 24 Javascript
jQuery AjaxUpload 上传图片代码
Feb 02 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
JS和Canvas实现图片的预览压缩和上传功能
Mar 30 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
Jun 13 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
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 MSSQL 存储过程的方法
2008/12/24 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
十个Python程序员易犯的错误
2015/12/15 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
关于Python错误重试方法总结
2021/01/03 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
应用化学专业本科生求职信
2013/09/29 职场文书
计算机工程学院个人求职信
2013/10/05 职场文书
安全教育演讲稿
2014/05/09 职场文书
个性与发展自我评价
2015/03/06 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
转变工作作风心得体会
2016/01/23 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python