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 相关文章推荐
js滚动条回到顶部的代码
Dec 06 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
Javascript进制转换实例分析
May 14 Javascript
jQuery Mobile页面返回不需要重新get
Apr 26 Javascript
原生js验证简洁注册登录页面
Dec 17 Javascript
bootstrap表格分页实例讲解
Dec 30 Javascript
js中new一个对象的过程
Feb 20 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
Jun 29 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
node.js实现上传文件功能
Jul 15 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入门基础之php代码写法
2011/12/30 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
python实现教务管理系统
2018/03/12 Python
python将回车作为输入内容的实例
2018/06/23 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
python实现词法分析器
2019/01/31 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
linux面试题参考答案(11)
2016/11/26 面试题
后勤自我鉴定
2013/10/13 职场文书
设计顾问服务计划书
2014/05/04 职场文书
社区禁毒工作方案
2014/06/02 职场文书
奥林匹克的口号
2014/06/13 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
门卫岗位职责
2015/02/09 职场文书
联村联户简报
2015/07/21 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书