* 解析 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)
}
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)