Javascript Json数组仅显示未定义的
所以读JSON回复简直是噩梦 无论我做什么,我都会得到一个对象列表,未定义或其他问题,但我无法从JSON回复中获得实际信息,但有一个JSON回复。我错过了什么。 JSON调用如下所示Javascript Json数组仅显示未定义的,javascript,json,Javascript,Json,所以读JSON回复简直是噩梦 无论我做什么,我都会得到一个对象列表,未定义或其他问题,但我无法从JSON回复中获得实际信息,但有一个JSON回复。我错过了什么。 JSON调用如下所示 var mapKeyUrl = "/GenMap/getcountry/jsonchk"; var mapKeyUrl = "/GenMap/getcountry/jsonchk" $.getJSON(mapKeyUrl, { regsel: "${regsel}", countryiso: cod
var mapKeyUrl = "/GenMap/getcountry/jsonchk";
var mapKeyUrl = "/GenMap/getcountry/jsonchk"
$.getJSON(mapKeyUrl, {
regsel: "${regsel}",
countryiso: code
})
.done(function( contdata ) {
alert(contdata)
contdata = contdata.country
alert(contdata)
document.getElementById("maptext").innerHTML = "I am an abwrock " + code + contdata.exturl;
})
响应(取自chrome调试)如下所示
{"country":
[
{"ccode":["EG"]},
{"cname":["Egypt"]},
{"exturl":["N/A"]},
{"impdate":[null]},
{"lupdate":["2014-09-28T23:00:00Z"]},
{"impnote":[null]}
]
}
无论是什么原因导致了这一点,似乎都过于复杂,并多次将其包装起来 您需要做的是找到具有所需属性(键)的对象,然后提取值,该值实际上是数组本身中的值 我会这样做:
var getProp = function(countryData, name) {
for(var i = 0; i < countryData.length; i++) {
if (countryData[i].hasOwnProperty(name)) {
var value_array = countryData[i][name];
return value_array[0];
}
}
return null;
};
var code = getProp(contdata,"ccode");
var ext_url = getProp(contdata,"exturl");
var getProp=function(countryData,name){
对于(变量i=0;i
无论是什么原因导致了这一点,似乎都过于复杂,并多次将其包装起来
您需要做的是找到具有所需属性(键)的对象,然后提取值,该值实际上是数组本身中的值
我会这样做:
var getProp = function(countryData, name) {
for(var i = 0; i < countryData.length; i++) {
if (countryData[i].hasOwnProperty(name)) {
var value_array = countryData[i][name];
return value_array[0];
}
}
return null;
};
var code = getProp(contdata,"ccode");
var ext_url = getProp(contdata,"exturl");
var getProp=function(countryData,name){
对于(变量i=0;i
试试这个:
alert(JSON.stringify(contdata));
或使用
console.log(contdata);
或使用
console.dir(contdata);
试试这个:
alert(JSON.stringify(contdata));
或使用
console.log(contdata);
或使用
console.dir(contdata);
你有一个数组,你没有考虑。您需要按以下方式访问您的数据:
console.log(contdata); // would dump entire object
console.log(contdata.country); // would dump inner array with length of 1
console.log(contdata.country[0]); // would dump object inside array
console.log(contdata.country[0].ccode[0]); // would dump country code
你有一个数组,你没有考虑。您需要按以下方式访问您的数据:
console.log(contdata); // would dump entire object
console.log(contdata.country); // would dump inner array with length of 1
console.log(contdata.country[0]); // would dump object inside array
console.log(contdata.country[0].ccode[0]); // would dump country code
对不起,代码是在外部定义的(应该提到)。如何访问contdata数组中名为exturl的对象。对不起,代码是在外部定义的(应该提到)。如何访问名为exturl的contdata数组中的对象。最终使用contdata.country[0].cname[0]获取该对象。当然其他的解决方案也可以,但这一个最适合我。最终通过contdata.country[0].cname[0]获得了它。当然,其他的解决方案也很有效,但这一个最适合我。