如何聚合json响应?

时间:2016-03-01 02:47:09

标签: jquery arrays json

我正在尝试从存储过程聚合json响应。

以下是proc的实际回复。

[
{
    "type": "fruit",
    "name": "apple"
},

{
    "type": "animal",
    "name": "cat"
},
{
    "type": "fruit",
    "name": "orange"
},
{
    type: "animal",
    "name": "dog"
}
]

聚合之后我希望它是这样的东西,

[
{
    "type":"fruit",
    "name":["apple","orange"]
},

{
    "type":"animal",
    "name":["cat","dog"]
}
]

任何人都可以帮我提供最好的解决方案吗?

感谢,

1 个答案:

答案 0 :(得分:0)

应该这样做:

function foo(data) {
    var i, d, temp = {}, output=[];
    for (i=0; i < data.length; i++) {
        d = data[i];
        if (d["type"] in temp)
            temp[d['type']].push(d['name']);
        else
            temp[d['type']] = [d['name']];
    }
    for (d in temp) {
        output.push({
            'type': d,
            'name': temp[d]
        });
    }
    return output;
}