因此有一个绝对的噩梦阅读JSON回复 无论我做什么,我得到一个对象列表,未定义或其他问题,但我无法从JSON回复中获取实际信息,但有一个JSON回复。我错过了什么 JSON调用看起来像这样
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]}
]
}
答案 0 :(得分:2)
你有一个你没有考虑的数组。您需要按如下方式访问您的数据:
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
答案 1 :(得分:1)
无论产生什么,这似乎都有复杂的问题并且包裹了好几次。
您需要做的是找到具有所需属性的对象(键)然后拉取值,这实际上是数组本身的值。
我要做的是:
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");
答案 2 :(得分:1)
试试这个:
alert(JSON.stringify(contdata));
或使用
console.log(contdata);
或使用
console.dir(contdata);