JSON字符串和JSON对像相互转化
来源:互联网 发布:手机淘宝有好货报名 编辑:程序博客网 时间:2024/05/16 07:16
将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包版本太低。
- JSON字符串和JSON对像相互转化
- json字符串和对象的相互转化
- json字符串和json对象之间相互转化
- [js][json]前台页面中json和字符串相互转化
- [js][json]前台页面中json和字符串相互转化
- [js][json]前台页面中json和字符串相互转化
- js中json字符串和json对象相互转化
- Json对象与Json字符串相互转化
- json对象与json字符串相互转化
- js中对json对象和字符串的理解以及相互转化
- javabean和json相互转化
- json字符串和java对象的相互转化
- JS对象和JSON字符串相互转化总结
- 使用GSON将对象和json字符串相互转化
- js中json和String字符串之间的相互转化
- 字典、数组和json字符串的相互转化
- json与字符串的相互转化
- json数据与字符串的相互转化
- asp.net 用户控件中的委托事件SelectedIndexChanged
- python简洁之道-----Requests库
- hdu 1874 畅通工程续
- IOS同步请求和异步请求的区别
- 安卓入门学习之ListView
- JSON字符串和JSON对像相互转化
- nio client和netty server实例
- 【数据结构】回顾表、栈、队列
- android图文列表
- cocos2d-x 游戏暂停界面,监听home键,返回键,Menu键 解决方案
- Java知识整理——Servlet&JSP
- 黑马程序员------------List,Set集合
- 栈的应用之行编辑程序
- Java知识整理——异常处理