jquery 解析 json

jquery 解析 json,第1张

/**

 * 解析 URL,重构URL中的参数为JSON格式

 * @param  {String} URL 地址

 * @return {object} JSON 数据

 */

function getURLParam(URL) {

    if (!URL) {

        URL = window.location.search

    }

    if ('?' === URL.charAt(0)) {

        URL = URL.substr(1)

    }

    var params = URL.split('&') || []

    var obj = {}

    params.forEach(function(item) {

        var arr = item.split('=')

        if (arr[0]) {

            obj[arr[0]] = arr[1]

        }

    })

    return obj

}

//举例

$.ajax({ url: "/jqdemo/jquery-ui-1.9.2.custom/dev/ui.button.jquery.json", dataType: "json" })

            .done(function (result) {//ajax的done解析result

                $.each(result, function (key,value) {

                    console.log(key + " " + value) //动态解析result的key和value

                })

            }) //ui.button.jquery.json格式为:

{

"name": "ui.button",

"title": "jQuery UI Button",

"description": "Enhances a form with themable buttons.",

"keywords": [

"ui",

"button",

"form",

"radio",

"checkbox"

],

"version": "1.9.2",

"author": {

"name": "jQuery Foundation and other contributors",

"url": "https://github.com/jquery/jquery-ui/blob/1.9.2/AUTHORS.txt"

},

"maintainers": [

{

"name": "Scott González",

"email": "scott.gonzalez@gmail.com",

"url": "http://scottgonzalez.com"

},

{

"name": "Jörn Zaefferer",

"email": "joern.zaefferer@gmail.com",

"url": "http://bassistance.de"

},

{

"name": "Kris Borchers",

"email": "kris.borchers@gmail.com",

"url": "http://krisborchers.com"

},

{

"name": "Corey Frang",

"email": "gnarf37@gmail.com",

"url": "http://gnarf.net"

}

],

"licenses": [

{

"type": "MIT",

"url": "https://github.com/jquery/jquery-ui/blob/1.9.2/MIT-LICENSE.txt"

}

],

"bugs": "http://bugs.jqueryui.com/",

"homepage": "http://jqueryui.com/button/",

"demo": "http://jqueryui.com/button/",

"docs": "http://api.jqueryui.com/button/",

"download": "http://jqueryui.com/download/",

"dependencies": {

"jquery": ">=1.6",

"ui.core": "1.9.2",

"ui.widget": "1.9.2"

},

"category": "widget"

}

json数据是我们常用的一种小型的数据实时交换的一个东西,他可以利用jquery或js进行解析,下面我来介绍jquery解析json字符串方法。

一、jQuery解析Json数据格式:

使用这种方法,你必须在Ajax请求中设置参数:

1 dataType: "json"

获取通过回调函数返回的数据并解析得到我们想要的值,看源码:

代码如下复制代码

jQuery.ajax({

url: full_url,

dataType: "json",

success: function(results) {

alert(result.name)

} })

通常情况下,你可以从后台返回JSON数据,前台就交给jQuery啦,哈哈!!

jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不

需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为

例说

例1

代码如下:

代码如下复制代码

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

代码如下复制代码

$.getJSON("htt p:// sani c.c nblog s.c om/",{param:"sanic"},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)

})

})

二、jQuery解析Json对象:

jQuery提供了另一种方法“parseJSON”,这需要一个标准的JSON字符串,并返回生成的JavaScript对象。让我们来看

看语法:

data = $.parseJSON(string)

看看它是如何运用的到实际开发中的:

代码如下复制代码

jQuery.ajax({

url: dataURL,success: function(results) {

var parsedJson = jQuery.parseJSON(results)

alert(parsedJson.name)

}

})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6849735.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存