`
hb_keepmoving
  • 浏览: 230581 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

用jquery解析JSON数据的方法以及字符串转换成json的3种方法

    博客分类:
  • JSON
阅读更多
用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所有浏览器中均抛异常,解析失败。而前两种方式则没问题。

分享到:
评论

相关推荐

    用jquery解析JSON数据的方法20110227

    1. **通过`eval()`函数解析JSON字符串**: 当服务器返回JSON字符串,而jQuery异步请求没有指定数据类型或以字符串形式接收时,我们可以使用`eval()`函数将其转换为JavaScript对象。但请注意,`eval()`是危险的,...

    jQuery读取json数据

    3. **自动JSON解析**:jQuery会自动将服务器响应的JSON字符串转换为JavaScript对象,避免了手动解析的繁琐步骤。 4. **良好的错误处理**:jQuery提供了一套完整的错误处理机制,可以优雅地处理网络或服务器问题。 ...

    使用JQuery实现从JSON对象转换为form提交数据

    在前端开发中,有时我们需要将JSON格式的数据转换成表单(form)的格式进行提交,以便于服务器端处理。在JavaScript的世界里,jQuery库提供了一种便捷的方式来进行这样的转换。本篇文章将深入探讨如何利用jQuery从...

    Jquery解析Json数据

    通过`$.getJSON()`或其他Ajax方法,我们可以轻松地从服务器获取JSON数据,然后利用JavaScript的内置方法解析JSON字符串为可操作的对象。无论是在源码分析还是开发工具中,理解和掌握这些技能都将对你的IT职业生涯...

    Jquery解析json

    这个类库可以帮助开发者轻松地将Java对象转换成JSON字符串,也可以将JSON字符串解析回Java对象。 例如,在Java中使用JSON类库可以创建一个包含多个用户的JSON对象,并将其转换为字符串发送给前端: ```java ...

    Jquery解析json数据详解

    最近被jquery折磨了一番,倒腾了一个jquery解析json的demo,本demo想实现从asp.net后台实例化dataSet或者dataTable数据集,将dataSet转换成json并返回给客户端,客户端用jquery getJson方法解析出来并显示在页面上。...

    Jquery.json.js

    jQuery提供了方便的方法来处理JSON数据,包括`$.getJSON()`和`$.ajax()`等函数,可以方便地从服务器获取JSON数据并将其转化为JavaScript对象,或者将JavaScript对象转换为JSON字符串发送到服务器。 **jQuery的get...

    ASP解析JSON方法

    例如,你可以创建一个函数,使用正则表达式来解析JSON字符串。这种方法虽然灵活性高,但相对复杂且效率较低,对于复杂的JSON结构可能不够理想。 4. 第三方组件 ASP社区提供了一些第三方组件,如ASPJSON...

    jquery_json.rar_JSON_jquery_jquery-json_jquery.json_jquery.json.

    2. **JSON字符串到JavaScript对象的解析**:相反,`JSON.parse()`方法用于将JSON字符串转换回JavaScript对象。在jQuery的json插件中,可能有一个对应的函数,如`$.parseJSON()`,它实现了相同的功能,但在不支持原生...

    jquery-json使用

    在jQuery中,我们可以使用`$.parseJSON()`方法将JSON字符串转换为JavaScript对象。例如,假设我们从服务器获取到一个JSON字符串: ```json var jsonString = '{"name": "John", "age": 30, "city": "New York"}'; `...

    java_jQuery_json工作过程

    1. **序列化与反序列化**:Java对象可以通过这些库转换为JSON字符串,反之亦然。例如,`Map, Object>`是Java中最常用的用于JSON数据处理的集合类型之一,它可以轻松地转换为JSON格式。 2. **JSON数据解析**:使用...

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    在文章中的PHP实例部分,使用了ThinkPHP框架中的M方法来查询数据库,返回的是一个包含菜品信息的数组,然后使用json_encode()函数将数组编码为JSON字符串。 3. 在前端处理返回的JSON数据:在$.ajax()方法的success...

    jquery-json美化

    1. **JSON解析**:在JavaScript中,可以使用`JSON.parse()`方法将JSON字符串转换为JavaScript对象,便于进一步处理。例如: ```javascript var jsonString = '{"name":"John", "age":30, "city":"New York"}'; ...

    解析带有html标签的json数据

    HTML json parser通常会先将JSON数据中的HTML字符串提取出来,然后使用HTML解析器来解析这些标签,将其转换为结构化的DOM(Document Object Model)树。 在实际应用中,我们可能会遇到以下几种情况: 1. **提取纯...

    jquery.json2xml.js和jquery.xml2json.js

    而`jquery.xml2json.js` 则提供了相反的功能,它将XML字符串转换为JSON对象。这对于从服务器接收XML响应并要在JavaScript中处理这些数据的情况非常有用。 ```javascript var xmlString = '<person><name>John...

    对象转换为JSON数据格式&使用JQuery获取数据

    标题提到的“对象转换为JSON数据格式”,在JavaScript中,我们可以通过`JSON.stringify()`方法将JavaScript对象转换成JSON字符串。这个方法接受三个参数:要转换的对象、用于替换值的函数以及保留哪些属性的白名单或...

    jquery.json-2.4.min.js

    在JavaScript中,`eval()`函数可以执行一段字符串作为代码,因此,如果直接使用`eval()`来解析JSON字符串,可能会带来安全风险,因为它可能执行恶意的JavaScript代码。`evalJSON`函数提供了一个安全的方式,它内部...

    jquery.jsoncookie.zip

    使用`jquery.jsoncookie.js`插件,你可以方便地将JSON对象序列化成字符串并存入Cookie,或者从Cookie中读取JSON数据并反序列化回对象。以下是一些基本用法: 1. 存储JSON数据到Cookie: ```javascript $.cookie('...

    jquery.json-2.3.js

    解析JSON($.parseJSON())是指将JSON格式的字符串转换为JavaScript对象,这对于从服务器获取数据并进行操作至关重要。例如,当你从一个RESTful API接收JSON响应时,可以使用这个函数将返回的字符串转化为可以直接...

Global site tag (gtag.js) - Google Analytics