2016-03-01 85 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上運行的例子。 –