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计算时间差的函数分享
Jul 04 Javascript
js confirm()方法的使用方法实例
Jul 13 Javascript
浅谈javascript语法和定时函数
May 03 Javascript
浅析JS运动
Dec 28 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
Oct 27 Javascript
微信小程序 登录实例详解
Jan 16 Javascript
AngularJS实现动态切换样式的方法分析
Jun 26 Javascript
微信小程序的mpvue框架快速上手指南
May 15 Javascript
axios如何取消重复无用的请求详解
Dec 15 Javascript
微信小程序开发中var that =this的用法详解
Jan 18 Javascript
JavaScript文档加载模式以及元素获取
Jul 28 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 18 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
php数据库密码的找回的步骤
2011/01/12 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
Python中的面向对象编程详解(上)
2015/04/13 Python
Python中生成Epoch的方法
2017/04/26 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
如何用python整理附件
2018/05/13 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
mac使用python识别图形验证码功能
2020/01/10 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
《鞋匠的儿子》教学反思
2014/03/02 职场文书
操行评语大全
2014/04/30 职场文书
应届生面试求职信
2014/07/02 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
入党政审材料范文
2014/12/24 职场文书
英语复习计划
2015/01/19 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
Python基础详解之描述符
2021/04/28 Python
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS