我有过
var results = {};
我编写了使用以下格式的数据填充结果(来自HTTP GET请求)的代码:
({
"result":[
{
"Longitude" : "-097.722382",
"Zipcode" : "78751",
"ZipClass" : "STANDARD",
"County" : "TRAVIS",
"City" : "AUSTIN",
"State" : "TX",
"Latitude" : "+30.310606"
}
]}
)
但是,我希望结果以TRAVIS
作为关键字,然后添加另一个名为count
的变量,该变量计算该县的总数。
我在访问键和值时遇到了问题;我似乎总是得到undefined
。我该如何访问这些密钥?
这是我的代码。从本质上讲,我正在处理一堆邮政编码,只过滤掉德克萨斯州的邮政编码。
var i = 0;
var results = {};
/*
var results = {
'TRAVIS': 10,
'DALLAS': 15,
};
*/
function getValues(obj, key) {
var objects = [];
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
if (typeof obj[i] == 'object') {
objects = objects.concat(getValues(obj[i], key));
} else if (i == key) {
objects.push(obj[i]);
}
}
return objects;
}
callback = function(response) {
//console.log('callback('+i+')');
var str = '';
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function () {
console.log('Processing: ' + i);
// TODO: Parse JSON
str = str.replace(/['\(\)]/g, "");
if(str.substring(0,1) == "{"){
JSON.parse(str);
}
if(str.substring(0,1) == "{"){
if( (str.substring(str.search("\"State\"") + 10, str.search("\"State\"") + 14)) == "\"TX\"")
{ //console.log("THIS IS FROM TEXAS ");
results[i] = str;
}
}
setTimeout(function() {
i++;
if (i >= data.length) {
console.log(results);
} else {
fetch();
}
}, 1000)
});
}
function fetch() {
//console.log('fetch('+i+')');
var options = {
host: 'gomashup.com',
path: '/json.php?fds=geo/usa/zipcode/'+ JSON.parse(data[i].zip)
};
http.request(options, callback).end();
}
fetch();
https://stackoverflow.com/questions/31121188
复制相似问题