在PCB规则引擎开发中,JavaScript V8引擎是处理业务逻辑的, 当然业务逻辑需要数据支撑才行, 即需有将数据推进入到V8引擎。目前这边数据传输到JavaScript V8引擎以C# Model结构或序列化为Json文本来进行数据传递。然对于规则维护人员来说,传递过来的数据结构是什么样的,其实并不是那么清楚明确,因为这个Model对象结构在序列化JSON文本前,它的数据结构已定义好,到了用户查看JSON样例时就是一串文本,虽然JSON简洁和清晰的层次结构,但规则维护来说还是不到足够的清晰明朗,如果对传过来的结构都不清晰,怎么让维护规则的人员更好的维护规则呢,所以初衷是为了更好的用户体验,将JSON文本转为Tree树结构在用户端更好的展示与查看数据结构。
一.原JSON文本
看似结构清晰,实则用户交互性操作性差
{ "FlowId" : 11985989, "TechNo" : "EN_04", "TechName" : "沉金", "GlobalOrder" : 68, "FlowFlag" : 0, "FlowLevel" : 2, "Remark" : "", "Params" : [{ "ItemNo" : "0001", "ItemName" : "最小镍厚", "ItemParam" : "3.00", "Unit" : "μm", "DisplayOrd" : 1 }, { "ItemNo" : "0003", "ItemName" : "最大镍厚", "ItemParam" : "8.00", "Unit" : "μm", "DisplayOrd" : 2 }, { "ItemNo" : "0002", "ItemName" : "最小金厚", "ItemParam" : "0.050", "Unit" : "μm", "DisplayOrd" : 3 }, { "ItemNo" : "0004", "ItemName" : "最大金厚", "ItemParam" : "0.100", "Unit" : "μm", "DisplayOrd" : 4 }, { "ItemNo" : "0007", "ItemName" : "CS面PNL面积(含孔)", "ItemParam" : "44.13", "Unit" : "inch2", "DisplayOrd" : 5 }, { "ItemNo" : "0006", "ItemName" : "SS面PNL面积(含孔)", "ItemParam" : "48.90", "Unit" : "inch2", "DisplayOrd" : 6 }, { "ItemNo" : "0005", "ItemName" : "沉金最小间距", "ItemParam" : "6.00", "Unit" : "mil", "DisplayOrd" : 7 }], "ExpTables" : null, "ChildFlows" : [] }
二.更改后JSON文本查看