jquery解析json格式數據的方法(對象、字符串)
本文實例講述了jquery解析json格式數據的方法。分享給大家供大家參考,具體如下:
json數據是我們常用的一種小型的數據實時交換的一個東西,他可以利用jquery或js進行解析,下面我來介紹jquery解析json字符串方法。
一、jQuery解析Json數據格式:
使用這種方法,你必須在Ajax請求中設置參數:
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("http://www.dhdzp.com/",{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對象。讓我們來看看語法:
看看它是如何運用的到實際開發(fā)中的:
jQuery.ajax({
url: dataURL, success: function(results) {
var parsedJson = jQuery.parseJSON(results);
alert(parsedJson.name);
}
});
補充:
jquery解析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:'商洛市'}
]
}";
//data為字符串類型 則要將字符串類型轉換成json數據類型
var jsondatas=eval("("+data+")");
$.each(jsondatas.root,function(i,n){
alert("name"+n.name+"value"+n.value);
}
)
//以下為數組類型字符串 轉換成json 字符串 解析
//數組形式的json字符串
var jsondata="[{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:'商洛市'}]";
var json=eval(jsondata);
$.each(json,function(i,n){
alert(json[i].name);
alert(json[i].value);//根據索引取值
});
//json數據字符 不需要轉換
var json={"Products":[
{"orderid":"11077","customerid":"RATTC"},
{"orderid":"11078","customerid":"RATT"}
],
"Img":[{"id":"12345","url"
:"image/1.jpg"}
]};
$.each(json.Products,function(i,n){
alert(n.orderid);
})
一般處理文件(Handler.ashx)
if (context.Request.QueryString["method"] != null)
{
string method = context.Request.QueryString["method"].ToString();
if (method == "getlist")
{
string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select ProID,ProName,url from Project where Adress = '哈爾濱'";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
string sb = CreateJsonParameters(ds.Tables[0]);
context.Response.ClearContent();
context.Response.Write(sb.ToString());
context.Response.End();
}
}
}
/// <summary>
/// 構建JSON字符串
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string CreateJsonParameters(DataTable dt)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
if (dt != null && dt.Rows.Count > 0)
{
sb.Append("[");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
//如果值不是最后一個則添加逗號分隔
if (j < dt.Columns.Count - 1)
{
sb.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + "/"" + dt.Rows[i][j].ToString() + "/",");
}
//如果值為最后個字符則不添加逗號
else if (j == dt.Columns.Count - 1)
{
sb.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + "/"" + dt.Rows[i][j].ToString() + "/"");
}
}
//如果為最后一個值的話 則不添加逗號
if (i == dt.Rows.Count - 1)
{
sb.Append("}");
}
else
{
sb.Append("},");
}
}
sb.Append("]");
return sb.ToString();
}
else { return null; }
}
$.ajax
(
{
type: "POST",
url: "Handler.ashx?method=getlist",
async: false,//true表示異步 false表示同步
contentType: "application/json",
dataType: 'json',
success: function(result) {
var temp=eval(result);
//通過javascript來解析返回數組字符串
for (var i = 0; i < temp.length; i++)
{
o.innerHTML += "項目名稱:" + result[i].ProName + "<br/>網址:<a href=" + result[i].url + " mce_href=" + result[i].url + " target='_blank'>" + result[i].url + "</a><br/>";
datas += "項目名稱:" + result[i].ProName + "<br/>網址:<a href=" + result[i].url + " mce_href=" + result[i].url + " target='_blank'>" + result[i].url + "</a><br/>";
}
TINY.box.show(datas, 0, 0, 0, 1);
}
});
希望本文所述對大家jQuery程序設計有所幫助。
- jquery的ajax異步請求接收返回json數據實例
- jQuery Ajax異步處理Json數據詳解
- jQuery中使用Ajax獲取JSON格式數據示例代碼
- jquery的ajax和getJson跨域獲取json數據的實現(xiàn)方法
- jquery用ajax方式從后臺獲取json數據后如何將內容填充到下拉列表
- 詳談 Jquery Ajax異步處理Json數據.
- JQuery的ajax獲取數據后的處理總結(html,xml,json)
- 用jquery和json從后臺獲得數據集的代碼
- jQuery使用getJSON方法獲取json數據完整示例
- jQuery實現(xiàn)異步獲取json數據的2種方式
- jQuery訪問json文件中數據的方法示例
相關文章
jquery UI Datepicker時間控件的使用及問題解決
這篇文章主要介紹了jquery UI Datepicker時間控件的使用及與asp.net中的UpdatePanel聯(lián)合使用時的失效問題解決,感興趣的小伙伴們可以參考一下2016-04-04
jQuery Validate表單驗證插件實現(xiàn)代碼
這篇文章主要介紹了jQuery Validate表單驗證插件實現(xiàn)代碼,需要的朋友可以參考下2017-06-06
jquery中append()與appendto()用法分析
這篇文章主要介紹了jquery中append()與appendto()用法分析,以實例的形式分析了jquery中append()與appendto()的具體語法與詳細用法,需要的朋友可以參考下2014-11-11
jquery Ajax 實現(xiàn)加載數據前動畫效果的示例代碼
本篇文章主要是對jquery Ajax實現(xiàn)加載數據前動畫效果的示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02

