2016-04-06 5 views
-2

にそれを合わせてJSONオブジェクトを操作:は、私は、このフォーマットでのMongoDBからのJSONレスポンスを持っているhighcharts

[{ 
    "_id" : 4, 
    "status" : [ 
     { 
      "status" : "Closed", 
      "count" : 2 
     }, 
     { 
      "status" : "Open", 
      "count" : 17 
     } 
    ], 
    "count" : 19 
}, 
{ 
    "_id" : 3, 
    "status" : [ 
     { 
      "status" : "Closed", 
      "count" : 6 
     }, 
     { 
      "status" : "Open", 
      "count" : 22 
     } 
    ], 
    "count" : 28 
}] 

私は私が上にそれらを渡すためにそれが容易になるように、オブジェクトの配列にこれを操作したいですハイチャート。

categories: ['3', '4'] 

series: [{ 
      name: 'Open', 
      data: [22,17] 
     }, { 
      name: 'Closed', 
      data: [6,2] 
     }] 

基本的には、カテゴリに対してすべての「公開」と「終了」をグループ化する必要があります。あなたのデータは常にこのようにフォーマットされている場合は

+4

配列をループ必要な構造を作成する –

+0

入力と出力のマッピングをもっと説明できますか?私はあなたの出力をどのように引き出すのか分かりません。 –

+0

どのようにデータ配列の値を取得していますか? – brk

答えて

3

は、私はこのような何かをするだろう:

var data = [{ 
 
    "_id" : 4, 
 
    "status" : [ 
 
     { 
 
      "status" : "Closed", 
 
      "count" : 2 
 
     }, 
 
     { 
 
      "status" : "Open", 
 
      "count" : 17 
 
     } 
 
    ], 
 
    "count" : 19 
 
}, 
 
{ 
 
    "_id" : 3, 
 
    "status" : [ 
 
     { 
 
      "status" : "Closed", 
 
      "count" : 6 
 
     }, 
 
     { 
 
      "status" : "Open", 
 
      "count" : 22 
 
     } 
 
    ], 
 
    "count" : 28 
 
}] 
 

 
$(function() { 
 
     var myCategories = []; 
 
     var mySeries = [{ 
 
         name: 'Open', 
 
         data: [] 
 
         },{ 
 
         name: 'Closed', 
 
         data: [] 
 
        }]; 
 
    
 
    for (var i = 0; i < data.length; i++){ 
 
     myCategories.push(data[i]._id); 
 
     mySeries[0].data.push(data[i].status[0].count); 
 
     mySeries[1].data.push(data[i].status[1].count); 
 
    } 
 
    $('#series').text(JSON.stringify(mySeries)); 
 
    $('#categories').text(JSON.stringify(myCategories)); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label>Categories:</label> 
 
<div id="categories"></div> 
 
<label>Series:</label> 
 
<div id="series"></div>
が続いhighchartsに、単純に設定することができます

categories: myCategories, 
series: mySeries 
関連する問題