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入门教程(1) 什么是JS
Jan 31 Javascript
jQuery+css实现图片滚动效果(附源码)
Mar 18 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
Apr 25 jQuery
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
详解jQuery如何实现模糊搜索
May 10 jQuery
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
vue 实现v-for循环回来的数据动态绑定id
Nov 07 Javascript
webpack4从0搭建组件库的实现
Nov 29 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数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
简单介绍jsonp 使用小结
2016/01/27 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
js实现抽奖效果
2017/03/27 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
浅谈angular4生命周期钩子
2017/09/05 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
详解python 中in 的 用法
2019/12/12 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
python 字符串格式化的示例
2020/09/21 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
英国现代绅士品牌:Hackett
2017/12/17 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
临床医学专业毕业生的自我评价
2013/10/17 职场文书
团工委书记自荐书范文
2013/12/17 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
住宅使用说明书
2014/05/09 职场文书
会计系毕业求职信
2014/08/07 职场文书
公司领导班子对照材料
2014/08/18 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
python开发飞机大战游戏
2021/07/15 Python