2017-03-02 5 views
0

Chart.jsを使用して未知のJSONデータを表示しようとしています(データの唯一の部分ですは「時間」を含むことを知っています)。JSONデータを不明な名前の配列に変換する方法

...私はいくつかのデータセットを持っているので、どのように私はこれらのフォーマットからデータを取得します:

データセット1:

dataset1 = [ { "time": "2017-03-02 09:00", "volts": 10, "amps": 4.5 },{ "time": "2017-03-02 09:10", "volts": 9.87, "amps": 4.15 }, ...] 

データセット2:

dataset2 = [ { "level": 1.23, "time": "2017-03-02 09:00", "volts": 3.5 }, { "level": 1.56, "time": "2017-03-02 09:10", "volts": 3.6 }, ...] 

...へこの形式(データセット1の場合):

data[ "time" ] = [ "2017-03-02 09:00", "2017-03-02 09:10", ...] 
data[ "volts" ] = [ 10, 9.87 ...] 
data[ "amps" ] = [ 4.5, 4.15 ...] 

...または(DATASET2用)この形式:

data[ "time" ] = [ "2017-03-02 09:00", "2017-03-02 09:10", ...] 
data[ "level" ] = [ 1.23, 1.56 ...] 
data[ "volts" ] = [ 3.5, 3.6 ...] 

私は何のキー(例えば、事前に知っていませんボルト、アンペア、レベル)が存在するため、配列を宣言することはできません。

誰かが助けてくれることを願っています。

+1

[Object.keys()](https://developer.mozilla.org/en/をdocs/Web/JavaScript/Reference/Global_Objects/Object/keys)を使用してオブジェクトのキーのリストを取得しますが、サポートされているかどうかはわかりません。 '[" time "、" volts "、" ampps "]' – George

+0

@Georgeを返す 'Object.keys(dataset1 [0])'の例があります:これを今見てみましょう。素早く対応してくれてありがとう:-) – simonl

+0

Object.keys(またはObject.valuesやObject.entries - interesting)についてはわかりませんでしたが、データ[xxx]配列の作成方法はまだわかりません: ( – simonl

答えて

0

あなたはこのいくつかの動的配列を用いて達成することができる:

var dataset1 = [ { "time": "2017-03-02 09:00", "volts": 10, "amps": 4.5 },{ "time": "2017-03-02 09:10", "volts": 9.87, "amps": 4.15 }]; 
var dataset2 = [ { "level": 1.23, "time": "2017-03-02 09:00", "volts": 3.5 }, { "level": 1.56, "time": "2017-03-02 09:10", "volts": 3.6 }]; 
var data = []; 
var datasets = [dataset1,dataset2]; 
for (var i in datasets) { 
    var dataset = datasets[i]; 
    for (var j in dataset) { 
    var d = dataset[j]; 
    for (var k in d) { 
     if (!data[k]) data[k] = []; 
     data[k].push(d[k]); 
    } 
    } 
} 

実施例:https://jsfiddle.net/mspinks/zhuxz2z6/1/使用することができ

関連する問題