我对 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'
});
我正在尝试编写一个函数来实现这一点。只有 epc、m1 或 m2 的值可能为 null,但必须检查条件以确定是否应创建事件范围以及应在何处结束。重新格式化此 json 数据(最好来自外部 json 表)的最佳方法是什么?
编辑:感谢所有帮助我看到它现在是如何工作的!我相信我第一次没有很好地解释,我实际上每个“组”需要多个类项目。
最终结果是这些将内联显示在时间线图“组”线上,因此我试图弄清楚如何为上面显示的每个数组元素创建多个新对象。
所以从技术上讲,第一个的开始日期 = m3,结束日期 = m4。然后,下一个对象将与第一个对象具有相同的组(5-HP...),开始日期 = m4,结束日期 = m5...等。这将一直持续到达到 m7(始终是结束日期,但绝不是开始日期)。
这就是为什么循环不是那么简单,要检查的条件很多。