私は JSON 表記に比較的慣れていないため、再フォーマットしようとしたときに問題が発生しました。プロジェクト タイムライン グラフにインポートするには、データベースに含まれている現在の形式を新しい形式に変更する必要があります。
現在の JSON 形式は次のとおりです。
[
{
"name":"5-HP-N/A-N/A-F8",
"node":{
"name":"5",
"id":14
},
"timeline":{
"epc":null,
"m1":null,
"m2":null,
"m3":1554087600000,
"m4":1593572400000,
"m5":1625108400000,
"m6":1641006000000,
"m7":1656644400000
},
"fab":{
"name":"F8",
"id":1
}
},
ただし、グラフに表示するには、次の形式が必要です。
{
'start': new Date(value from epc, or first non-null milestone),
'end': new Date(value from m1 or first non-null milestone), // end is optional
'content': 'label from start Date milestone'
'group' : ' value from name field above 5-HP'
'classname' : ' value from start Date milestone'
});
これを達成するために関数を作成しようとしています。null の値を持つことができるのは epc、m1、または m2 だけですが、イベント範囲を作成する必要があるかどうか、およびイベント範囲をどこで終了する必要があるかを判断するには、条件を確認する必要があります。このjsonデータを(できれば外部jsonシートから)再フォーマットする最良の方法は何ですか?
編集:これが現在どのように機能しているかを確認してくれてありがとう!最初はうまく説明できなかったと思いますが、実際には「グループ」ごとに複数のクラス項目が必要です。
最終結果は、これらがタイムライン グラフの「グループ」行にインラインで表示されるため、上記の配列要素ごとに複数の新しいオブジェクトを作成する方法を見つけようとしています。
したがって、技術的には、最初の日付は開始日 = m3、終了日 = m4 になります。次に、次のオブジェクトは最初のオブジェクトと同じグループ (5-HP...)、開始日 = m4、終了日 = m5... などになります。これは、m7 (常に終了日ですが、開始日はありません) に達するまで続きます。
これが、チェックする条件が多く、ループがそれほど単純ではない理由です。