json和js对象转换
来源:互联网 发布:修改tomcat的端口号 编辑:程序博客网 时间:2024/04/27 19:43
JSON是一种便于操作使用的轻量级数据交换格式。易于人阅读和编写。同时也
易于机器解析和生成。
很多时候我们需要将JSON格式的字符串转化为JSON对象或者将JSON对象转为JSON字符串。特别是在AJAX应用中经常需要将JSON格式的字符串返回到前端,前端解析成js对象(JSON )。
现将工作中接触到的一些方法总结如下:。
一. 将JSON字符串转化为JSON对象
- eval方式解析。各个版本的浏览器都支持,也是以前最早使用的方式了,而且性能也不错。使用方法为:eval('('+sJSON+')') ;注意:在字符串两端再加上括号,否则会出错。有时从数据库读出来的数据带有空格,使 eval 失效。这时只要将字符串中的空格去掉即可result.replace(/\s/ig, ' ');
- new Function方式。各个版本的浏览器也都支持,看起来比较怪异。使用方法为:var json = (new Function("return " + sJSON))();
- 浏览器内置的JSON对象提供的方法。性能非常不错,不过只有IE8/Firefox3.5+/Chrome4/Safari4/Opera10 及以后版本内置了该方法。用法为:JSON.parse(str); ie8(兼容模式),ie7和ie6虽然没有此内置的JSON对象,不过你可以从https://github.com/douglascrockford/JSON-js上获取json2.js文件使得ie6,ie7可以使用JSON对象中的parse()方法。注意:使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,否则为报错,前两种方式则没有此问题。
- JQuery中的parseJSON方法。jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式(属性加上双引号“”)的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。注意在JQuery中有些ajax的函数已经将服务器传过来的数据转化为了JSON对象了,比如$.getJSON("http://www.xxxxx/",{param:"xxx"},function(data){
//此处返回的data已经是json对象 });$.ajax()中dataType如果指定为json的话则也已经转化为JSON对象了。
在性能方面的比较可以看http://weblogs.asp.net/yuanjian/archive/2009/03/22/json-performance-comparison-of-eval-new-function-and-json.aspx。
结论是:
在IE6,7中选择使用eval(choose eval in IE6, 7)。
在IE8中选择使用内置的JSON对象(choose native JSON in IE8)。
在火狐2,3中使用new Function(choose new Function in Firefox2, 3).
在Safari4中选择使用eval(choose eval in Safari4)。
使用其他的浏览器则eval和new Function两者性能差不多。
简而言之:能用内置的JSON对象则使用JSON对象,否则的话只在火狐中使用new Function,其他都使用eval即可。
二. 将JSON对象转化为JSON字符串
- 浏览器内置的JSON对象提供的方法。同理只有IE8/Firefox3.5+/Chrome4/Safari4/Opera10 及以后版本内置了该方法。用法为:JSON. stringify (json); ie8(兼容模式),ie7和ie6虽然没有此内置的JSON对象,不过你可以从https://github.com/douglascrockford/JSON-js上获取json2.js文件使得ie6,ie7可以使用JSON对象中的stringify()方法。
阅读全文
0 0
- JSON和js对象转换
- json和js对象转换
- js json 对象转换
- JS中JSON对象和JSON字符串的转换
- JSON对象转换JS字符串
- JS中实现对象和JSON字符串的转换
- json字串和js对象之间互相转换
- JS:json对象和字符串之间的转换。
- json和js对象之间的互相转换
- JS中Json对象和字符串之间的转换
- nodejs JS对象和JSON字符串之间的转换
- JS中JSON字符串和对象相互转换
- Json字符串和js对象之间的转换
- Java、js中json和对象的相互转换
- JSON和JS对象
- JS对象和JSON
- js-json字符串转换为json对象
- js中操作json,json对象和json字符串的转换与区别
- MySQL 找回密码
- python from __future__ import division
- 安卓跑opencl移植记录
- CentOS7.2安装Mysql5.5(Linux Generic).tar.gz
- 关于如何监听div大小的变化,jquery扩展函数
- json和js对象转换
- Mapreduce实例-JOIN
- Xamarin XAML语言教程模板视图TemplatedView(一)
- jquery操作css
- 隐藏Android底部的虚拟按键
- dataTable 参数配置
- Unity优化之GC——合理优化Unity的GC
- Python的常用模块
- Css优化