
CSVファイルをJSON出力に変換する必要があります。 csvtojasonライブラリを使用しています。https://www.npmjs.com/package/csvtojson,csv ファイル:
モード、デバイス、セットトップボックス、データ、データ1、データ2、データ3、データ4 モデル1、機器1、セットトップボックス1、データ1、データ2、データ3、データ4 モデル1、デバイス2、stb1、データ1、データ2、データ3、データ4 modelo2、デバイス1、stb1、データ1、データ2、データ3、データ4 modelo2、デバイス1、stb2、データ1、データ2、データ3、データ4 モデル2、デバイス2、stb1、データ1、データ2、データ3、データ4 モデル2、デバイス2、stb2、データ1、データ2、データ3、データ4 モデル2、デバイス2、stb3、データ1、データ2、データ3、データ4
jsonを変換するコード
csv = 要求('csvtojson') csvFilePath = './CSVFile.csv' .csv() .fromFile(csv ファイルパス) .then((jsonObj) => { Console.log(jsonObj) res.send(jsonObj); })
しかし、出力は私が期待していたものから離れています。
[ { モデル: 'modelo1', デバイス: 'device1', STB:「STB1」、 データ: 'データ1', データ1:「データ2」、 データ2:「データ3」、 データ 3: 'データ 4'}, {モード: 'modelo1'、 デバイス: 'device2', STB:「STB1」、 データ: 'データ1', データ1:「データ2」、 データ2:「データ3」、 データ 3: 'データ 4'}, {モード: 'modelo2', デバイス: 'device1', STB:「STB1」、 データ: 'データ1', データ1:「データ2」、 データ2:「データ3」、 データ 3: 'データ 4'}, {モード: 'modelo2', デバイス: 'device1', STB:「STB2」、 データ: 'データ1', データ1:「データ2」、 データ2:「データ3」、 データ 3: 'データ 4'}, {モード: 'modelo2', デバイス: 'device2', STB:「STB1」、 データ: 'データ1', データ1:「データ2」、 データ2:「データ3」、 データ 3: 'データ 4'}, {モード: 'modelo2', デバイス: 'device2', STB:「STB2」、 データ: 'データ1', データ1:「データ2」、 データ2:「データ3」、 データ 3: 'データ 4'}, {モード: 'modelo2', デバイス: 'device2', セットトップボックス:「セットトップボックス3」、 データ: 'データ1', データ1:「データ2」、 データ2:「データ3」、 データ3:「データ4」}]
私は次のようなものを得ることを期待しています:
[{ モデル1:{ デバイス1:{ stb1:[データ:'データ1',データ2:'データ2',データ3:'データ3',データ4:'データ4'] } デバイス2:{ stb1:[データ:'データ1',データ2:'データ2',データ3:'データ3',データ4:'データ4'] } } モデル2:{ デバイス1:{ stb1: [データ:'データ1',データ2:'データ2',データ3:'データ3',データ4:'データ4'] stb2: [データ:'データ1',データ2:'データ2',データ3:'データ3',データ4:'データ4'] } デバイス2:{ stb1: [データ:'データ1',データ2:'データ2',データ3:'データ3',データ4:'データ4'] stb2: [データ:'データ1',データ2:'データ2',データ3:'データ3',データ4:'データ4'] stb3: [データ:'データ1',データ2:'データ2',データ3:'データ3',データ4:'データ4'] } } }]
これを行う簡単な方法があるかどうかご存知ですか?
答え1
答えを見つけました。 D3ライブラリを使用すると、非常に簡単です。
https://d3js.org/d3-collection.v1.min.js
私の.jsファイルから:
var groupedJson = d3.nest()
.key(function (d) { return d.model; })
.key(function (d) { return d.device; })
.key(function (d) { return d.stb; })
.entries(json);
console.log(groupedJson);