2014-01-20 4 views
0

Iam новичок в jquery. Мне нужно разобрать JSON. Я пробовал с $ каждым утверждением, но зацикливался на цикле [object, object]. вот код, который я использовал для разбора JSON. Помоги мне в этом.Loop через вложенный объект в jquery

var myjson='[{"isTruncated": "false","nextMarker": "null","marker": "null","prefix": "Mymedia/mysys/","contents": [{"deviceInfo": "null","lastModified": "Thu Dec 26 16:36:42 IST 2013","etag": "d41d8cd98f00b204e9800998ecf8427e","key":"Mymedia/mysys/audio_$folder$","size": "0"},{"deviceInfo": null,"lastModified": "Thu Dec 26 16:36:11 IST 2013","etag": "d41d8cd98f00b204e9800998ecf8427e","key": "Mymedia/mysys/doc_$folder$","size": "0"},{ "deviceInfo": null,"lastModified": "Thu Dec 26 16:36:20 IST 2013", "etag": "d41d8cd98f00b204e9800998ecf8427e","key": "Mymedia/mysys/imge_$folder$","size": "0"},{"deviceInfo": null,"lastModified": "Thu Dec 26 16:36:56 IST 2013","etag": "d41d8cd98f00b204e9800998ecf8427e","key":"Mymedia/mysys/others_$folder$","size": "0"},{"deviceInfo": null,"lastModified": "Thu Dec 26 16:36:32 IST 2013","etag": "d41d8cd98f00b204e9800998ecf8427e","key": "Mymedia/mysys/video_$folder$","size": "0"}],"name": "name", "statusCode": "200","statusMessage": "Success","error": null}]'; 

var dataobj = $.parseJSON(JSON.stringify(myjson)); 

      $.each(dataobj, function (key, val) { 
       alert(key + val); 
       if (key == "contents") { 
        $.each(val, function (mykey, values) { alert(mykey + values) }); 
        $.each(values, function (key, pairs) {alert(pairs) }); 

       } 

      }); 

Iam не может пройти через объект JSON (содержимое) и получить элементы внутри него. Мне нужно получить ключ внутри содержимого object.Point мне, где я пошел не так.

+0

у вас уже есть строка json, поэтому вам не нужно ее снова подставлять. Просто выполните синтаксический анализ такой строки. var dataobj = $ .parseJSON (myjson); а затем попытаться создать объект цикла –

+0

Не нужно использовать JSON.stringify, поскольку ваш json уже находится в строковой форме, поэтому избегайте этого и используйте как $ .parseJSON (myjson). –

ответ

1

используя ссылку переполнения стека, упомянутую для этого вопроса, я решил проблему. Я опубликовал код ниже.

var Listobj = new Array(); 
var dataobj = $.parseJSON(JSON.stringify(myjson)); 

$.each(dataobj, function (key, val) { 
       alert(key + val); 
       if (key == "contents") { 
        for (var i = 0, l = val.length; i < l; i++) { 
         var obj = val[i]; 
         alert(obj.key); 
         Listobj[i] = obj.key; 
        } 

       } 

      }); 
Смежные вопросы