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 ui resizable bug解决方法
Oct 26 Javascript
js constructor的实际作用分析
Nov 15 Javascript
js中escape对应的C#解码函数 UrlDecode
Dec 16 Javascript
Javascript基础知识(二)事件
Sep 29 Javascript
JQuery右键菜单插件ContextMenu使用指南
Dec 19 Javascript
jquery实现的省市区三级联动
Apr 02 Javascript
基于Bootstrap3表格插件和分页插件实例详解
May 17 Javascript
Backbone中View之间传值的学习心得
Aug 09 Javascript
vue.js todolist实现代码
Oct 29 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
使用Vue调取接口,并渲染数据的示例代码
Oct 28 Javascript
比较node.js和Deno
Apr 27 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
解析curl提交GET,POST,Cookie的简单方法
2013/06/29 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
DOM 事件流详解
2015/01/20 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
深入Python函数编程的一些特性
2015/04/13 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
Python批量启动多线程代码实例
2020/02/18 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
学校师德承诺书
2014/05/23 职场文书
村党支部书记承诺书
2014/05/29 职场文书
生物科学专业自荐书
2014/06/20 职场文书
数学教研活动总结
2014/07/02 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android