我有一个问题,ajax可以看到我从flask中给出的数据,但是当我循环它时它似乎没有在内部解析。这是一个1项循环,但是当数据输入时它会更多。
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干净利落地显示为ios:
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 :(得分:1)
基于你的javascript,json看起来像{ "routers" :[ {"os": "4.4.4.4", "name": "DNSROOTSERVER"}]}