从树中获取json数据并通过关联数组

时间:2015-08-21 02:38:35

标签: javascript jquery json

我试图读取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{}

有什么想法吗?我不认为我是控制台正确记录它还是我做错了什么?

由于

4 个答案:

答案 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{}

正如您在上面的示例中所看到的,您必须反转该过程才能将其打印出来。

请参阅JSON MDN Article

答案 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.
});

数据对象必须具有不同的键,否则它们将重叠。