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 相关文章推荐
jquery click([data],fn)使用方法实例介绍
Jul 08 Javascript
JS字符串处理实例代码
Aug 05 Javascript
JS求平均值的小例子
Nov 29 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
Dec 10 Javascript
JSON字符串和对象之间的转换详解
May 26 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
javascript中new关键字详解
Dec 14 Javascript
深入学习jQuery Validate表单验证
Jan 18 Javascript
AngularJS Toaster使用详解
Feb 24 Javascript
详解js中的几种常用设计模式
Jul 16 Javascript
JS+css3实现幻灯片轮播图
Aug 14 Javascript
AJAX检测用户名是否存在的方法
Mar 24 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模板解析类实例
2015/07/09 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
pthon贪吃蛇游戏详细代码
2019/01/27 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
员工试用期考核自我鉴定
2014/04/13 职场文书
党员个人对照检查材料
2014/10/01 职场文书
新闻稿格式范文
2015/07/18 职场文书
情人节单身感言
2015/08/03 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
MySQL数据库完全卸载的方法
2022/03/03 MySQL
Java界面编程实现界面跳转
2022/06/16 Java/Android