2015-05-13 2 views
0

Я пытаюсь разобрать результат JSON с помощью этого сценария:JQuery: GetJson дает мне только неопределенную данные

$.getJSON(url, function(data){ 
    var items=[]; 
    $.each(data,function(i,item){ 
     items.push("<div class='col-lg-12' >"); 
     items.push(" By "+ item.user_name +": "+ item.created_at);     
     items.push("</div>"); 
     items.push("<div class='col-lg-12' >"); 
     items.push("<p>" + item.text + "</p>");     
     items.push("</div>"); 
    }); 
    $("<ul/>", { 
     "class": "my-new-list", 
     html: items.join("") 
    }).appendTo("#commentaires"); 
}); 

JSON для синтаксического анализа является

[ 
    [ 
     { 
      "text": "text1", 
      "created_at": "12 May, 2015", 
      "user_name": "gilbert moignon" 
     } 
    ], 
    [ 
     { 
      "text": "text2", 
      "created_at": "12 May, 2015", 
      "user_name": "jean bono" 
     } 
    ], 
    [ 
     { 
      "text": "text3", 
      "created_at": "12 May, 2015", 
      "user_name": "gerard mentor" 
     } 
    ] 
] 

Unfortunaltely, для неизвестной причины, Вместо моих данных я вижу только undefined. Может ли кто-нибудь мне помочь?

+1

Что такое 'url', который вы пытаетесь получить, это онлайновый или локальный файл? – jmgross

+0

url - это локальный файл. Я попробовал его с помощью $ ('# commentaires'). load (url); ' и получил json я дал на вопрос. – michael

ответ

1

Вы должны изменить код следующим образом:

Поскольку вы разбор вложенных массивов и имеет только один элемент в массиве, вы должны использовать item[0] внутри each:

$.each(data, function (i, item) { 
    item = item[0]; 

Демо: https://jsfiddle.net/tusharj/dydect3t/

+0

Это работает. Спасибо за вашу помощь. – michael

+0

Протестировано и правильно. Также можно изменить на $ .each (данные [0], .... – Roberto

Смежные вопросы