2016-07-06 2 views
0

У меня проблема, когда ajax может видеть данные, которые я дал из фляжки, но, похоже, это не синтаксический анализ внутри, когда я его зацикливаю. В настоящее время это 1 элемент цикла, но он будет больше, когда в него будут поступать данные.Как перебрать элементы в списке json Ajax/Javascript

Json строка:

{ "routers" : {"DNSROOTSERVER": {"os": "4.4.4.4", "name": "DNSROOTSERVER"}}} 

так понимает data.routers, и он даже понимает data.routers.DNSROOTSERVER.name (как вы увидите в console.log), но когда я использую петля над data.routers, зацикленный элемент отображает (el), но он, похоже, терпит неудачу, когда я пытаюсь el.name, заявив, что он не определен. Javascript ниже:

$(document).ready(function(){ 
$.ajax({ url: "{{ url_for('.gui_form') }}", dataType: 'json', 
    success: function(data, textStatus, xhr){ 
     console.log(data) 
     $(data.routers).each(function(i, el) { 
      console.log(el) 
      console.log(el.os) 
      console.log(data.routers.DNSROOTSERVER.os) 
      var listem = "<br>" + el.name; 
      $("#routers").append("<li>" + listem + "</li>"); 
     }); 
    } 
    }); 
}); 

Я расширил журнал консоли, так что вы можете увидеть, что данные там и как зацикленной el.os выходит неопределенными, но data.routers.DNSROOTSERVER.name выходит чисто, как ИОС:

Object {routers: Object}routers: ObjectDNSROOTSERVER: Objectip: "4.4.4.4"name: "DNSROOTSERVER"os: "ios"__proto__: Object__proto__: Object__proto__: Object 
Object {DNSROOTSERVER: Object}DNSROOTSERVER: Objectip: "4.4.4.4"name: "DNSROOTSERVER"os: "ios"__proto__: Object__proto__: Object 
undefined 
ios 

Любые идеи, что я делаю неправильно?

+0

от того, что я могу видеть в вашем JSON вам не нужны никакие петли – madalinivascu

+0

на основе вашего яваскрипта в JSON Шоуда выглядеть '{«маршрутизаторов»: [{ «os»: «4.4.4.4», «name»: «DNSROOTSERVER»}]} ' – madalinivascu

+1

try $ (data.routers.DNSROOTSERVER) .each (...) –

ответ

1

Основываясь на вашем Javascript JSON Шоуда выглядеть { "routers" :[ {"os": "4.4.4.4", "name": "DNSROOTSERVER"}]}

+0

Да. Как вы сказали, мой json был искажен. Благодаря! Очень признателен. –

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