是jquery的新手。以这种格式从php获得json响应。
{
"div1":{"data":"minute=0,hour=27,day=649,month=19K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\nminute=0,hour=34,day=825,month=24K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\nminute=0,hour=40,day=980,month=29K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\n","address":"232323"},
"div2":{"data":"","address":"232323"},
"div3":{"data":"minute=0,hour=28,day=682,month=20K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\nminute=0,hour=36,day=866,month=26K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\nminute=0,hour=42,day=1019,month=30K,smallSize=0, id=XXXXXXXXXX, ip=yyyyyyyyyyy<br \/>\n","address":"232323"}
}
我如何在jquery中迭代此JSON并获取div1&gt;数据和div1&gt;地址,div2&gt;数据和div2&gt;地址。有谁可以帮助我?
答案 0 :(得分:2)
使用jQuery each
方法尝试此操作。
var obj = { ... };
$.each(obj, function(key, value) {
//key - each object in the json object
//value - its value
});
如果它是格式良好的json字符串而不是对象,那么您需要先使用parseJSON
方法解析它,然后使用它来迭代它。
var obj = $.parseJSON(jsonString);
然后您可以直接访问所需的属性,如下所示
div1&gt; data =&gt; obj.div1.data;
div1&gt; address =&gt; obj.div1.address;
div2&gt; data =&gt; obj.div2.data;
div2&gt; address =&gt; bj.div2.address;
答案 1 :(得分:1)
编辑:此处的jQuery版本 DEMO
function viewJSON (jsonObj) {
var divData;
$.each (jsonObj, function (key, value) {
divData = value; //gives me the value of div 1
$. each (value, function (key, value) {
console.log ('Key is ' + key + ' Value is ' + value);
});
});
}
你也可以使用简单的javascript迭代来获取div1&gt;数据,(非jQuery版本)
function viewJSON (jsonObj) {
var divData;
for (divKey in jsonObj) {
divData = jsonObj [divKey]; //gives me the value of div 1
for (dataKey in divData) {
console.log ('Key is ' + dataKey + ' Value is ' + divData[dataKey]);
}
}
}
<强> DEMO HERE 强>
答案 2 :(得分:0)
循环还是直接访问?
$.each(json, function(key, val) {
console.log(key + ' ' + val.data + ' ' + val.address);
});
直接访问:
console.log(json.div1.data);
console.log(json.div1.address);
// etc
答案 3 :(得分:0)
最简单的方法是简单地解析JSON并直接与结果对象进行对话。
var theResponse = ...;
var obj = $.parseJSON(theResponse);
console.log(obj.div1.data);
console.log(obj.div1.address);