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 相关文章推荐
JavaScipt基本教程之前言
Jan 16 Javascript
asp.net HttpHandler实现图片防盗链
Nov 09 Javascript
一个报数游戏js版(约瑟夫环问题)
Aug 05 Javascript
使用jquery实现以post打开新窗口
Mar 19 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
Jun 25 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
Dec 02 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 Javascript
JavaScript之生成器_动力节点Java学院整理
Jun 30 Javascript
React Native预设占位placeholder的使用
Sep 28 Javascript
js实现数组内数据的上移和下移的实例
Nov 14 Javascript
原生JS实现记忆翻牌游戏
Jul 31 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
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
Python3 批量扫描端口的例子
2019/07/25 Python
Python partial函数原理及用法解析
2019/12/11 Python
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
物业公司采购员岗位职责
2013/12/31 职场文书
学年自我鉴定
2014/01/16 职场文书
公司会计岗位职责
2014/02/13 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
2015年国庆节寄语
2015/08/17 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android