用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。
这里首先给出JSON字符串集,字符串集如下:
代码如下:
var data="
{
root:
[
{name:'1',value:'0'},
{name:'6101',value:'北京市'},
{name:'6102',value:'天津市'},
{name:'6103',value:'上海市'},
{name:'6104',value:'重庆市'},
{name:'6105',value:'渭南市'},
{name:'6106',value:'延安市'},
{name:'6107',value:'汉中市'},
{name:'6108',value:'榆林市'},
{name:'6109',value:'安康市'},
{name:'6110',value:'商洛市'}
]
}";
这里以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。
1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:
var dataObj=eval("("+data+")");//转换为json对象
alert(dataObj.root.length);//输出root的子对象数量
$.each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}
//输出每个root子对象的名称和值
alert("name:"+item.name+",value:"+item.value);
})
注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:
$.getJSON("http://www.phpzixue.cn/",{param:"gaoyusi"},function(data){
//此处返回的data已经是json对象
//以下其他操作同第一种情况
$.each(data.root,function(idx,item){
if(idx==0){
return true;//同countinue,返回false同break
}
alert("name:"+item.name+",value:"+item.value);
});
});
这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了 eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。
本文来自: IT知道网(http://www.itwis.com) 详细出处参考:http://www.itwis.com/html/programme/javascript/20090905/6081.html
=================字符串转换成json的三种方式=======================
第一种:eval方式解析
function strToJson(str){
var json = eval('(' + str + ')');
return json;
}
第二种:new Function形式
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}
第三种:使用全局的JSON对象
function strToJson(str){
return JSON.parse(str);
}
另外:使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error
name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。
分享到:
相关推荐
1. **通过`eval()`函数解析JSON字符串**: 当服务器返回JSON字符串,而jQuery异步请求没有指定数据类型或以字符串形式接收时,我们可以使用`eval()`函数将其转换为JavaScript对象。但请注意,`eval()`是危险的,...
3. **自动JSON解析**:jQuery会自动将服务器响应的JSON字符串转换为JavaScript对象,避免了手动解析的繁琐步骤。 4. **良好的错误处理**:jQuery提供了一套完整的错误处理机制,可以优雅地处理网络或服务器问题。 ...
在前端开发中,有时我们需要将JSON格式的数据转换成表单(form)的格式进行提交,以便于服务器端处理。在JavaScript的世界里,jQuery库提供了一种便捷的方式来进行这样的转换。本篇文章将深入探讨如何利用jQuery从...
通过`$.getJSON()`或其他Ajax方法,我们可以轻松地从服务器获取JSON数据,然后利用JavaScript的内置方法解析JSON字符串为可操作的对象。无论是在源码分析还是开发工具中,理解和掌握这些技能都将对你的IT职业生涯...
这个类库可以帮助开发者轻松地将Java对象转换成JSON字符串,也可以将JSON字符串解析回Java对象。 例如,在Java中使用JSON类库可以创建一个包含多个用户的JSON对象,并将其转换为字符串发送给前端: ```java ...
最近被jquery折磨了一番,倒腾了一个jquery解析json的demo,本demo想实现从asp.net后台实例化dataSet或者dataTable数据集,将dataSet转换成json并返回给客户端,客户端用jquery getJson方法解析出来并显示在页面上。...
jQuery提供了方便的方法来处理JSON数据,包括`$.getJSON()`和`$.ajax()`等函数,可以方便地从服务器获取JSON数据并将其转化为JavaScript对象,或者将JavaScript对象转换为JSON字符串发送到服务器。 **jQuery的get...
例如,你可以创建一个函数,使用正则表达式来解析JSON字符串。这种方法虽然灵活性高,但相对复杂且效率较低,对于复杂的JSON结构可能不够理想。 4. 第三方组件 ASP社区提供了一些第三方组件,如ASPJSON...
2. **JSON字符串到JavaScript对象的解析**:相反,`JSON.parse()`方法用于将JSON字符串转换回JavaScript对象。在jQuery的json插件中,可能有一个对应的函数,如`$.parseJSON()`,它实现了相同的功能,但在不支持原生...
在jQuery中,我们可以使用`$.parseJSON()`方法将JSON字符串转换为JavaScript对象。例如,假设我们从服务器获取到一个JSON字符串: ```json var jsonString = '{"name": "John", "age": 30, "city": "New York"}'; `...
1. **序列化与反序列化**:Java对象可以通过这些库转换为JSON字符串,反之亦然。例如,`Map, Object>`是Java中最常用的用于JSON数据处理的集合类型之一,它可以轻松地转换为JSON格式。 2. **JSON数据解析**:使用...
在文章中的PHP实例部分,使用了ThinkPHP框架中的M方法来查询数据库,返回的是一个包含菜品信息的数组,然后使用json_encode()函数将数组编码为JSON字符串。 3. 在前端处理返回的JSON数据:在$.ajax()方法的success...
1. **JSON解析**:在JavaScript中,可以使用`JSON.parse()`方法将JSON字符串转换为JavaScript对象,便于进一步处理。例如: ```javascript var jsonString = '{"name":"John", "age":30, "city":"New York"}'; ...
HTML json parser通常会先将JSON数据中的HTML字符串提取出来,然后使用HTML解析器来解析这些标签,将其转换为结构化的DOM(Document Object Model)树。 在实际应用中,我们可能会遇到以下几种情况: 1. **提取纯...
而`jquery.xml2json.js` 则提供了相反的功能,它将XML字符串转换为JSON对象。这对于从服务器接收XML响应并要在JavaScript中处理这些数据的情况非常有用。 ```javascript var xmlString = '<person><name>John...
标题提到的“对象转换为JSON数据格式”,在JavaScript中,我们可以通过`JSON.stringify()`方法将JavaScript对象转换成JSON字符串。这个方法接受三个参数:要转换的对象、用于替换值的函数以及保留哪些属性的白名单或...
在JavaScript中,`eval()`函数可以执行一段字符串作为代码,因此,如果直接使用`eval()`来解析JSON字符串,可能会带来安全风险,因为它可能执行恶意的JavaScript代码。`evalJSON`函数提供了一个安全的方式,它内部...
使用`jquery.jsoncookie.js`插件,你可以方便地将JSON对象序列化成字符串并存入Cookie,或者从Cookie中读取JSON数据并反序列化回对象。以下是一些基本用法: 1. 存储JSON数据到Cookie: ```javascript $.cookie('...
解析JSON($.parseJSON())是指将JSON格式的字符串转换为JavaScript对象,这对于从服务器获取数据并进行操作至关重要。例如,当你从一个RESTful API接收JSON响应时,可以使用这个函数将返回的字符串转化为可以直接...