2016-03-01 49 views
-1

我想从存储过程中聚合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"] 
} 
] 

任何一个可以请帮我最好的解决方案可能吗?

感谢,

+0

看看JQ https://stedolan.github.io/jq/ –

+0

你为什么要使用一个数组,而不仅仅是一个东西? '{“fruit”:[“apple”,“orange”],“animal”:“name”:[“cat”,“dog”]}' – epascarello

+0

因为多数民众赞成我如何从存储过程中获取数据... – freshtoUI

回答

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; 
} 
+0

这是一个[链接](https://jsfiddle.net/6cbpon3c/)在jsFiddle上运行的例子。 –