- 浏览: 1162106 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1587页面里的img元素,想要 ... -
JavaScript中奇葩的假值
2016-03-14 17:43 1155通常在以下语句结构中需要判断真假 if分支语句 whi ... -
世界上最短的数字判断代码
2016-03-14 16:21 1575我们知道JavaScript提供了typeof运算符,因此最 ... -
getBoundingClientRect在IE9/10里的bug
2015-01-12 08:30 1643getBoundingClientRect可以获得页面中某个 ... -
JavaScript中的直接量与初始器的区别
2014-11-08 06:09 1623很多代码优化及公司规范都会提到 写对象不应该 var ... -
JavaScript中的不可见数据类型
2014-11-02 11:08 1286JS提供了一些内置对象、函数和构造器供我们编程,如Math ... -
ES5严格模式
2014-10-08 18:20 1246严格模式(Strict mode)是由ECMA-262规范 ... -
JavaScript生成GUID的算法
2014-07-16 14:25 3011全局唯一标识符(GUID,Globally Unique ... -
JavaScript中点号“.”的多义性
2014-06-07 19:42 1653点号「.」在JavaScript中 ... -
冗余换性能-从Backbone的triggerEvents说开了去
2014-02-19 11:03 948Backbone是一个优秀的前端MVC库,它的代码质量必定 ... -
JavaScript中delete操作符不能删除的对象
2013-11-27 13:21 1302ES3 中,delete在8.6.2.5及11.4.1有介 ... -
JavaScript中instanceof对于不同的构造器可能都返回true
2013-11-19 11:13 1207我们知道 instanceof 运算符用来检查对象是否为某 ... -
JavaScript里模拟sleep
2013-10-16 07:52 1542有几种方式,但都不完美 一、不断循环,直到达到指定时间 ... -
参数有中包含空格且使用Post提交时须将空格转换成加号
2013-10-14 08:07 5203jQuery的serialize模块中有个r20正则 ... -
JavaScript中“基本类型”之争
2013-10-04 20:58 1120前端面试中常被问到的问题之一就是“JavaScript的基本 ... -
ES3和ES5关于计算顺序的问题(ES5先计算函数ES3则是参数)
2013-09-13 23:35 1310从cmc那看到的,分享给园友。以下是一个怪异的代码,谁 ... -
一道关于"/g"笔试题
2013-07-26 07:13 1051正则里“g”表示全局(global)的意思,比如当替换字符串 ... -
JavaScript原型继承的陷阱
2013-05-27 20:51 1394JavaScript默认采用原型 ... -
JavaScript中__proto__与prototype的关系
2013-05-21 10:38 1456这里讨论下对象的内 ... -
JavaScript中__proto__与prototype的关系
2013-05-21 10:01 3这里讨论下对象的内 ...
相关推荐
本文将详细介绍三种将字符串转换为JSON对象的方法,并探讨它们的优缺点。 1. **使用`eval`函数** 这是最传统的字符串到JSON的转换方法。`eval`函数能够执行一个字符串作为JavaScript代码,因此它可以解析JSON字符...
这篇文章主要介绍了JS如何把字符串转换成json,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Json格式字符串 "{"rows":[{"date":"2018-11-19","money":"22",...
本文将详细介绍三种将字符串转换为JSON的JS方法,并提供相关注意事项和浏览器兼容性信息。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人...
字符串转换成json对象
本篇文章将详细讲解如何将string类型的XML字符串转换为JSON字符串,并介绍相关的技术知识。 首先,理解XML和JSON的基本结构是至关重要的。XML是一种树形结构的标记语言,通过标签来定义元素和属性,例如: ```xml ...
本知识点主要关注如何将ASP中的字符串转换为JSON对象,特别地,这个过程是通过原生的VBScript(Visual Basic Script)实现的,而不是依赖于第三方库。 首先,我们需要理解VBScript中的JSON解析概念。由于ASP.NET...
标题中的“使用json-lib将java对象转换成json字符串”指的是在Java编程中,利用json-lib这个库来将Java对象转化为JSON格式的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端...
总结起来,C#提供了两种主要的方式来处理JSON数据和字符串的相互转换:内置的`System.Text.Json`库和流行的第三方库`Newtonsoft.Json`。两者都能满足大部分开发需求,但在某些特定场景下,如处理复杂数据类型或追求...
通过这种方式,你可以使用`JsonUtils.jsonToJavaObject()`方法将JSON字符串转换为任意指定类型的Java对象,而`JsonUtils.javaObjectToJson()`则将Java对象转换为JSON字符串。 总之,JSON字符串转换插件是Java开发中...
在C++编程中,将JSON字符串转换为C++类对象是一项常见的任务,特别是在处理网络通信、数据存储或配置文件时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...
xml字符串转换json格式 可用于微信小程序xml字符串转换json格式 安装 npm方式安装 npm install --save xmlstring2json bower方式安装 bower install xmlstring2json 用法示例: bookstore.xml文件 <title>...
1. `JSON.parse()`方法用于将一个JSON字符串转换为JavaScript对象。在JSON中,数据被表示为键值对(key-value pairs)的集合,而JavaScript对象正是以这种方式存储数据。例如,如果你有一个JSON字符串`'{"name": ...
本篇文章将深入探讨如何将一个JSON格式的字符串转换为对象,这在处理网络请求响应、存储用户数据或者进行数据交换时是常见的操作。 标题提到的“将json字符串转换为对象”,实际上是在指JSON.parse()方法,这个方法...
Json对象与json字符串互相转换处理工具
当你从服务器获取到一个JSON格式的响应或者需要将数据以JSON格式发送到服务器时,就需要将JSON字符串转换为JSON对象,或者反之。本篇将详细介绍如何在JavaScript中进行这样的操作。 首先,要将JSON字符串转换为JSON...
在JavaScript中,将字符串转换为JSON对象是常见的操作,特别是在处理服务器与客户端的数据交换时。在ECMAScript的早期版本中,JSON(JavaScript Object Notation)并未被正式纳入标准,但在ECMAScript 5(ECMA-262 ...
本篇文章将深入探讨JSON中的特殊字符串转换,以及如何正确处理它们。 一、JSON特殊字符与转义 在JSON中,字符串必须用双引号(")括起来。如果字符串内部需要包含双引号,或者其他特殊字符如反斜杠(\)、换行符...
1. **解析JSON数据**:首先,需要解析JSON字符串为JavaScript对象。 2. **分析数据结构**:遍历JSON对象,识别其类型、属性、值等信息。 3. **构建JSON Schema**:根据分析结果,创建相应的JSON Schema对象。 4. **...