`

用jquery解析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的脚本库。





JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不需要任何特殊的 API 或工具包。
本文主要是对JS操作JSON的方法做下总结。

在JSON中,有两种结构:对象和数组。
    1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不需要。例如:
    var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};   
    2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
    例如:
    var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];

为了方便地处理JSON数据,JSON提供了json.js包,下载地址:http://www.json.org/json.js

在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
       JSON字符串:
       var str1 = '{ "name": "cxh", "sex": "man" }';
       JSON对象:
       var str2 = { "name": "cxh", "sex": "man" };


一、JSON字符串转换为JSON对象

要使用上面的str1,必须使用下面的方法先转化为JSON对象:

//由JSON字符串转换为JSON对象

var obj = eval('(' + str + ')');

或者

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

或者

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

然后,就可以这样读取:

Alert(obj.name);

Alert(obj.sex);



特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。



二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。

例如:

var last=obj.toJSONString(); //将JSON对象转化为JSON字符

或者

var last=JSON.stringify(obj); //将JSON对象转化为JSON字符

alert(last);


注意:
    上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。

注明出处:陈新汉
分享到:
评论

相关推荐

    用jquery解析JSON数据的方法20110227

    在jQuery中,有多种方法来解析JSON数据,本文将详细介绍两种主要方法。 首先,假设我们有一个JSON格式的字符串,如以下示例: ```javascript var data = "{ root: [ {name:'1',value:'0'}, {name:'6101',value:...

    jquery解析JSON数据的方法.docx

    jQuery提供了更安全的方式来解析JSON数据,即使用`.getJSON()`方法。`.getJSON()`是异步的,它会发送一个HTTP GET请求到指定的URL,然后将返回的JSON数据解析成JavaScript对象。例如: ```javascript $.getJSON(...

    jQuery读取json数据

    关于"jQuery读取json数据"这个主题,我们将会深入探讨如何利用jQuery的Ajax功能来高效地加载和解析JSON格式的数据,以及这样做带来的优势。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于...

    Jquery解析json数据详解

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

    Jquery解析Json数据

    在本话题中,我们将深入探讨如何使用jQuery解析JSON数据,这在现代Web应用中是一个非常重要的技能,因为JSON(JavaScript Object Notation)已经成为数据交换的标准格式。 JSON是一种轻量级的数据交换格式,它易于...

    Jquery解析json

    6. **前端jQuery解析JSON数据** #### JSON介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON格式基于JavaScript的一个子集,但JSON是独立于...

    Jquery解析Json数据,实现级联菜单

    本主题将深入探讨如何使用jQuery解析JSON数据并实现级联菜单,这在构建动态和交互性强的用户界面时非常常见。级联菜单通常用于导航,其中下拉选项根据上一个选项的选择而变化,提供更具体的子类别。 首先,让我们...

    使用JQUery解析JSON字符串

    在IT行业中,JavaScript库jQuery是前端开发中...以上就是关于“使用jQuery解析JSON字符串”这一主题的详细讲解,涵盖了JSON的基础知识、jQuery的解析方法以及动态更新DOM的内容。希望对您在实际项目中的应用有所帮助。

    Jquery.json.js

    在实际项目中,通过使用jQuery提供的这些方法,开发者可以轻松地处理JSON数据,实现与服务器的高效通信。同时,理解jQuery与JSON的交互方式对于Web开发人员来说至关重要,能够提升开发效率和代码质量。

    jquery实现json数据填充到table表格中并且实现remove add 数据

    在JavaScript或jQuery代码中,我们可以通过`$.getJSON()`方法来获取服务器端的JSON数据。成功获取数据后,遍历JSON数组,使用`append()`方法将每一项数据转化为`<tr>`元素并插入到表格中。例如: ```javascript $....

    jquery获取json数据的并分页案例

    要使用jQuery获取JSON数据,我们通常会使用`$.ajax()`或`$.getJSON()`方法。`$.ajax()`是一个更全面的异步HTTP(Ajax)请求方法,可以处理各种类型的HTTP请求,包括GET和POST。而`$.getJSON()`是`$.ajax()`的一个...

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

    首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在前端应用中,我们经常从服务器获取JSON格式的数据,然后在...

    jquery-json使用

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

    ASP解析JSON方法

    在ASP中解析JSON数据可以帮助我们从服务器接收或向服务器发送结构化数据。下面我们将详细探讨ASP解析JSON的方法及其对比。 1. ASP内置对象:JSON对象 ASP.NET 2.0及以上版本提供了内置的System.Web.Script....

    jquery解析json格式数据的方法(对象、字符串)

    一、jQuery解析Json数据格式: 使用这种方法,你必须在Ajax请求中设置参数: dataType: “json” 获取通过回调函数返回的数据并解析得到我们想要的值,看源码: jQuery.ajax({ url: full_url, dataType: json, ...

    jQuery树状json数据转表格插件.zip

    使用此插件时,开发者通常需要引入jQuery库和插件文件,然后按照文档指示配置JSON数据源和表格容器,最后调用插件方法进行数据转换和渲染。 总的来说,"jQuery树状json数据转表格插件"是一个实用的工具,它有效地...

    jquery_json.rar_JSON_jquery_jquery-json_jquery.json_jquery.json.

    在实际应用中,例如,当需要从服务器获取JSON数据并将其显示在网页上时,`$.ajax`或`$.getJSON`等jQuery方法可以用来发送Ajax请求。收到JSON响应后,使用`$.parseJSON`将JSON字符串解析成JavaScript对象,然后可以...

    jQuery解析json数据实例分析

    本文主要介绍了如何利用jQuery解析JSON数据,并通过实例详细阐述了在前端页面中利用jQuery处理从服务器端通过Servlet返回的JSON格式数据的具体方法。以下将结合提供的内容,具体介绍相关的知识点: 1. JSON数据格式...

Global site tag (gtag.js) - Google Analytics