我正在尝试使用json文件。 此代码可以在我的代码上正常工作
console.log(resp);
这是控制台的结果
{Result: {…}}
Result:
Code: "00"
city: Array(18)
0: {cityname: "강원도", citycount: "146"}
1: {cityname: "경기도", citycount: "1055"}
2: {cityname: "경상남도", citycount: "303"}
但这不起作用
console.log(itemNm2);
console.log(dataV);
这是错误!
未捕获的TypeError:无法读取未定义的属性“ city”
原始代码也具有类似“城市名称”,“城市计数”的变量
但是效果不好。我认为是因为破折号?所以我删除了破折号。
如何解决此问题?谢谢!
这是我的完整代码:
$.ajax({
url: 'js/map.json',
type: 'GET',
dataType: 'json',
success: function (resp) {
console.log(resp);
var options = {
toolTip : {
use : {
local : true
},
className : 'tip',
position : {
x : 0,
y : -10
}
},
data: {
data: [
{locname: '', listshrs: ''}
],
localOption: 'locname',
use : 'listshrs'
}
};
var rows = resp.Result[1].City;
if (rows) {
var representativeRow;
for (i = 0; i < 2; i++) {
representativeRow = rows[i];
itemNm2 = representativeRow.cityname;
dataV = representativeRow.citycount;
console.log(itemNm2);
console.log(dataV);
options.data.data.push({locname: itemNm2, listshrs: dataV});
}
korea = webponent.visual.korea.init($(".korea"), style, options);
}
}, error: function (xhr, status, error) {
alert("err")
}
});
这是json的示例!
{
"Result": {
"Code": "00",
"City": [
{
"city-name": "강원도",
"city-count": "146"
},
{
"city-name": "경기도",
"city-count": "1055"
}
]
}
}
答案 0 :(得分:0)
尝试一下:
itemNm2 = representativeRow["city-name"];
dataV = representativeRow["city-count"];
答案 1 :(得分:0)
根据我在示例JSON和代码中看到的内容,您正在尝试访问resp.Result[1].City
,但是resp.Result
不是数组。
代替:
var rows = resp.Result[1].City;
您必须这样做:
var rows = resp.Result.City;
此外,如果必须在JSON对象中使用破折号,请参见Charis Theo的答案。