2012-01-03 4 views
0

Является новым для jquery. Имейте json-ответ от php в этом формате.Iterate JSON Response in JQuery

{ 
"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"} 
} 

Как мне нужно повторять этот JSON в JQuery и принести в Div1> данные и Div1> адрес, div2> данные и div2> адреса. Может кто-нибудь мне помочь?

+0

Возможный дубликат [Как повторить данные json в jquer y] (http://stackoverflow.com/questions/4233354/how-to-iterate-json-data-in-jquery) – JohnP

+0

Вы используете '$ .getJSON' для его получения? –

ответ

1

Edit: 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); 
    }); 

    }); 
} 

вы также можете использовать простой яваскрипт итерацию, чтобы получить Div1> данные, (не 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

0

Петля или прямой доступ?

$.each(json, function(key, val) { 
    console.log(key + ' ' + val.data + ' ' + val.address); 
}); 

Прямой доступ:

console.log(json.div1.data); 
console.log(json.div1.address); 
// etc 

http://jsfiddle.net/karim79/CKDXU/

0

Самый простой способ это просто разобрать JSON и говорить непосредственно к полученному объекту.

var theResponse = ...; 
var obj = $.parseJSON(theResponse); 
console.log(obj.div1.data); 
console.log(obj.div1.address); 
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); 

Затем вы можете получить прямой доступ к требуемым свойствам, как показано ниже

див1> данные =>obj.div1.data;

div1> адрес =>obj.div1.address;

div2> данные =>obj.div2.data;

div2> адрес =>bj.div2.address;