- 浏览: 1122676 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhizhen23:
LZ 提供的链接地址失效了
重写的isPlainObject方法 -
LovingBaby:
LovingBaby 写道function fun() {}f ...
读jq之二(两种扩展) -
LovingBaby:
说的很清楚!jQuery作者为了实现简洁调用的苦心!高超的编程 ...
读jq之一(jq对象的组成) -
hard_ly:
...
将伪数组转换成数组 -
zlxzlxzlxzlxzlx:
这不能算是任意进制之间的转换,例如二十六进制、十二进制又该如何 ...
用递归实现十进制数转换N进制
使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON )。
ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。
1,eval方式解析,恐怕这是最早的解析方式了。如下:
function strToJson(str){ var json = eval('(' + str + ')'); return json; }
记得别忘了str两旁的小括号。
2,new Function形式,比较怪异哦。如下
function strToJson(str){ var json = (new Function("return " + str))(); return json; }
3,使用全局的JSON对象,如下:
function strToJson(str){ return JSON.parse(str); }
目前 IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法,以下是部分资料:
http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx
https://developer.mozilla.org/en/Using_JSON_in_Firefox
使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下
var str = '{name:"jack"}'; var obj = JSON.parse(str); // --> parse error
name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。
评论
18 楼
free_wxl
2012-08-03
建议使用第三种方法,上面二种都会产生内存泄露。
17 楼
微雨骑驴入剑门
2012-03-22
学习了,感谢lz分享
16 楼
4769946
2010-05-25
zhouyrt 写道
nenyalanye_1 写道
第二种怎么理解? 这种JSON.parse(str); 要不要导什么js函数
不用,JSON是全局的直接使用。IE8/Firefox3.5+/Chrome4/Safari4/Opera10支持。
难道第二种IE67不支持的??
15 楼
Qiao.Gbin
2010-05-24
创建一个script节点
然后script.text = data
这样可以吧
然后script.text = data
这样可以吧
14 楼
satanest
2010-03-21
第一种和第二种都有安全隐患哎
第三种在ie6,7支持不了
第三种在ie6,7支持不了
13 楼
chpublish1012
2010-03-18
第一种如果不是json格式的会报错
后两种是什么情况呀
后两种是什么情况呀
12 楼
greatghoul
2010-03-18
呵呵,我也一起码在用第一种,不过第二种应该要比第一种快很多才是。
11 楼
zhouyrt
2010-03-18
nenyalanye_1 写道
第二种怎么理解? 这种JSON.parse(str); 要不要导什么js函数
不用,JSON是全局的直接使用。IE8/Firefox3.5+/Chrome4/Safari4/Opera10支持。
10 楼
nenyalanye_1
2010-03-17
第二种怎么理解? 这种JSON.parse(str); 要不要导什么js函数
9 楼
RednaxelaFX
2010-03-17
zhouyrt 写道
RednaxelaFX 写道
John Resig老大推荐用Crockford的json2js,可以参考
呵,这个说法不对。
1,(EMCA262-V5)明确规定了对JSON本地支持,所以首选是原生态的JSON.parse方法
2, eval解析存在bug,见http://dev.jquery.com/ticket/4680
ps:jq1.4.1后加入了parseJSON方法,先使用JSON.parse解析,浏览器不支持则使用new Function形式解析。
json2.js本来就会在浏览器原生支持JSON.parse的时候选用原生版本,而且它跟ES5是API兼容的。在ES5还没完全普及的现状下,John Resig老大推荐用json2.js主要是为了现在就能用跟ES5兼容的API,日后能平滑过渡到ES5——只要去掉一个import就换过来了。
8 楼
zhouyrt
2010-03-17
RednaxelaFX 写道
John Resig老大推荐用Crockford的json2js,可以参考
呵,这个说法不对。
1,(EMCA262-V5)明确规定了对JSON本地支持,所以首选是原生态的JSON.parse方法
2, eval解析存在bug,见http://dev.jquery.com/ticket/4680
ps:jq1.4.1后加入了parseJSON方法,先使用JSON.parse解析,浏览器不支持则使用new Function形式解析。
7 楼
jaxchow
2010-03-17
每一种很不好!!!太危险了,AIR里不允许使用!还是第三种好
6 楼
xiaoyiz
2010-03-17
qinshujin 写道
学了一年多的java web 开发今天又学了个新名词json
请问下json是一种数据类型吗?
请问下json是一种数据类型吗?
轻量级的数据传送格式 是一种文本格式 (保存数据和传送数据的一种方式)不是数据类型
5 楼
qinshujin
2010-03-16
学了一年多的java web 开发今天又学了个新名词json
请问下json是一种数据类型吗?
请问下json是一种数据类型吗?
4 楼
RednaxelaFX
2010-03-16
John Resig老大推荐用Crockford的json2js,可以参考
3 楼
linkobe
2010-03-16
eval 那两个括号很邪恶,刚入门的时候被这个搞了半天。
而且YUI的compressor不推荐用此方式,对压缩混淆有影响
而且YUI的compressor不推荐用此方式,对压缩混淆有影响
2 楼
zzhonghe
2010-03-16
还有一种是解析字符串的key和value,并生成Object,这是Json官网比较推荐的一种方式,好处是提高了安全性。eval执行的代码有可能是恶意代码。
http://www.JSON.org/json_parse.js
http://www.JSON.org/json_parse.js
1 楼
felsenlee
2010-03-16
一直在用第一中,原来还有更优雅得写法
发表评论
-
JavaScript获取图片的原始尺寸
2016-04-20 10:30 1414页面里的img元素,想要 ... -
JavaScript中奇葩的假值
2016-03-14 17:43 999通常在以下语句结构中需要判断真假 if分支语句 whi ... -
世界上最短的数字判断代码
2016-03-14 16:21 1407我们知道JavaScript提供了typeof运算符,因此最 ... -
getBoundingClientRect在IE9/10里的bug
2015-01-12 08:30 1509getBoundingClientRect可以获得页面中某个 ... -
JavaScript中的直接量与初始器的区别
2014-11-08 06:09 1454很多代码优化及公司规范都会提到 写对象不应该 var ... -
JavaScript中的不可见数据类型
2014-11-02 11:08 1124JS提供了一些内置对象、函数和构造器供我们编程,如Math ... -
ES5严格模式
2014-10-08 18:20 1075严格模式(Strict mode)是由ECMA-262规范 ... -
JavaScript生成GUID的算法
2014-07-16 14:25 2883全局唯一标识符(GUID,Globally Unique ... -
JavaScript中点号“.”的多义性
2014-06-07 19:42 1526点号「.」在JavaScript中 ... -
冗余换性能-从Backbone的triggerEvents说开了去
2014-02-19 11:03 818Backbone是一个优秀的前端MVC库,它的代码质量必定 ... -
JavaScript中delete操作符不能删除的对象
2013-11-27 13:21 1171ES3 中,delete在8.6.2.5及11.4.1有介 ... -
JavaScript中instanceof对于不同的构造器可能都返回true
2013-11-19 11:13 1070我们知道 instanceof 运算符用来检查对象是否为某 ... -
JavaScript里模拟sleep
2013-10-16 07:52 1413有几种方式,但都不完美 一、不断循环,直到达到指定时间 ... -
参数有中包含空格且使用Post提交时须将空格转换成加号
2013-10-14 08:07 5083jQuery的serialize模块中有个r20正则 ... -
JavaScript中“基本类型”之争
2013-10-04 20:58 1005前端面试中常被问到的问题之一就是“JavaScript的基本 ... -
ES3和ES5关于计算顺序的问题(ES5先计算函数ES3则是参数)
2013-09-13 23:35 1224从cmc那看到的,分享给园友。以下是一个怪异的代码,谁 ... -
一道关于"/g"笔试题
2013-07-26 07:13 968正则里“g”表示全局(global)的意思,比如当替换字符串 ... -
JavaScript原型继承的陷阱
2013-05-27 20:51 1291JavaScript默认采用原型 ... -
JavaScript中__proto__与prototype的关系
2013-05-21 10:38 1365这里讨论下对象的内 ... -
JavaScript中__proto__与prototype的关系
2013-05-21 10:01 3这里讨论下对象的内 ...
相关推荐
主要是字符串转换成json,里面有详细介绍,可以好好看看
js中将字符串转换成json的三种方式.docx
这篇文章主要介绍了JS如何把字符串转换成json,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Json格式字符串 "{"rows":[{"date":"2018-11-19","money":"22",...
字符串转换成json对象
将string类型的xml转为JSON字符串,利用JSONObject处理JSON串
json 字符串转成c++类对象,json 字符串转成c++类对象
项目中关于json字符串转换的可用,导入项目即可进行引入转换
Json对象与json字符串互相转换处理工具
xml字符串转换json格式 可用于微信小程序xml字符串转换json格式 安装 npm方式安装 npm install --save xmlstring2json bower方式安装 bower install xmlstring2json 用法示例: bookstore.xml文件 <title>...
一、JSON字符串转换为JSON对象 要使用上面的str1,必须使用下面的方法先转化为JSON对象: //由JSON字符串转换为JSON对象 var obj = eval(‘(‘ + str + ‘)’); 或者 var obj = str.parseJSON(); //由JSON...
NULL 博文链接:https://yxgyh.iteye.com/blog/392657
json特殊字符串转换
在对数据库取出来的数据(特别是描述信息)里面含有特殊字符的话,使用JSON.parse将json字符串转换成json对象的时候会出错,主要是双引号,回车换行等影响明显,左尖括号和右尖括号也会导致显示问题,所以要在输出到...
asp字符串转json对象类,原生vbs实现,json对象属性用obj("name")方式访问,obj.name方式不可以
ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。 1,eval方式解析,恐怕这是最早的解析方式了。如下: 代码如下: function str...
Unity3D中任意类型数据转换成json数据的方法 Posted on 2013年03月20日 by U3d / Unity3D脚本/插件/被围观 275 次
用java实现的递归下降文法 将JSon字符串转换成Java对象 为了简单化 忽略了很多情况 仅仅作为初接触编译原理的同学们共勉 User对象有一个Teacher对象 Teacher里有一个Book对象 等等 比如 User user User json User ...
1、将form中的数据利用本工具转换成json格式的字符串,再通过ajax传给服务器,从而可以实现无刷新的form提交。; 2、通过AJAX从服务器得到json格式的数据,然后使用本工具解析数据填入form。从而可以实现无刷新的...