我试图读取JSON API并将数据解析为关联数组,但我似乎无法使其工作。我一定是做错了。
这是我的代码:
var matchedValues = {};
$.getJSON(url ,function(data) {
$.each(data, function() {
var value = this["value"];
var climb = this["climb"];
matchedValues[value] = climb;
});
});
console.log(matchedValues); //Outputs Object{}
有什么想法吗?我不认为我是控制台正确记录它还是我做错了什么?
由于
答案 0 :(得分:0)
从jquery文档中尝试这种方法
编辑:
$.getJSON(url, function(data) {
var matchedValues = {};
$.each(data, function(key, val) {
items[key] = val;
});
答案 1 :(得分:0)
matchedValues
是一个Object而不是一个数组。尝试likmatchedValues['your_key']
来获取价值。
答案 2 :(得分:0)
我假设从ajax调用返回的数据是一个JSON字符串,您希望解析它。如果是这种情况,那么问题已经使用JavaScript的JSON对象解决了:
var matchedValues = {};
$.getJSON(url ,function(data) {
matchedValues=JSON.parse(data);
});
console.log(JSON.stringfy(matchedValues)); //Outputs Object{}
正如您在上面的示例中所看到的,您必须反转该过程才能将其打印出来。
答案 3 :(得分:0)
如果我理解了您的问题,那么您的数据就是Array
个对象,并且您希望将它们合并到一个大对象中。
如果做对了,那就用这个方法:
var matchedValues = {};
$.getJSON("ajax/test.json", function(data) {
for (var i = 0; i < data.length; i++) {
for (key in data[i]) {
matchedValues[key] = data[i][key];
}
}
console.log(matchedValues); //this should print your object.
});
数据对象必须具有不同的键,否则它们将重叠。