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实现倒计时按钮功能代码分享
Sep 03 Javascript
Backbone.js中的集合详解
Jan 14 Javascript
jquery控制页面部分刷新的方法
Jun 24 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
javascript实现获取浏览器版本、浏览器类型
Dec 02 Javascript
javascript的理解及经典案例分析
May 20 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
详解JSON Web Token 入门教程
Jul 30 Javascript
vue实现循环切换动画
Oct 17 Javascript
微信小程序地图实现展示线路
Jul 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
html中select语句读取mysql表中内容
2006/10/09 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
对于Python中RawString的理解介绍
2016/07/07 Python
Python连接phoenix的方法示例
2017/09/29 Python
机器学习python实战之手写数字识别
2017/11/01 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
自我鉴定怎么写
2014/01/12 职场文书
优秀部门获奖感言
2014/02/14 职场文书
环保建议书300字
2014/05/14 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书