0

我在兜圈子,对如何访问这个哈希表中的元素感到困惑。我已经成功地从 json 返回了我的数据。它是一个对象,但该对象包含两列 fips 和相应的值。我想访问第一行。我试过使用 raw.fips / raw[fips] 和 raw[0] 都返回 undefined 但我只是不知道如何访问它。

如果有帮助,这里是ajax

$.ajax({
    type: "GET",
    url: WebRoot + "ws/GIS.asmx/CensusData",
    data: d,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        fipsData = data.d;                                            
        console.log("json object returned data : " + fipsData);
        init(regType, varId);                
    } //ends success function
});  //ends ajax call

ajax 返回数据,在日志中有 3141 行/我不确定的元素。

var raw = fipsData;
var valMin = Infinity;
var valMax = -Infinity;        

for (var index in raw) {
    fipsCode = raw[fips];
    console.log(fipsCode);
}

//log data
console.log("fipsData is : " + fipsData);              
console.log("Raw number :" + raw);//undefined  
4

1 回答 1

0

您在此代码中使用了错误的索引:

for (var index in raw) {
    fipsCode = raw[fips];
    console.log(fipsCode);
}

您已设置为用于循环的变量,但是当您尝试访问它时index正在使用它。fips尝试更改fipsCode = raw[fips];fipsCode = raw[index];.

此外,您应该在循环对象时始终进行hasOwnProperty检查,以避免尝试处理方法等。尝试这个:

for (var index in raw) {
    if (raw.hasOwnProperty(index)) {
        fipsCode = raw[index];
        console.log(fipsCode);
    }
}

如果这不起作用,那么如果您可以展示一些返回数据的样本,那将更容易继续进行故障排除。

于 2013-08-07T16:34:52.873 回答