心心念念几年的复杂多级json拼接,在论坛里也搜了很多次,因为不是开发,自己认知也有限,一直没搞清楚,也没时间搞,最近看到10.0横空出世,实在手痒痒,忍不住搞了几天,可算是有点谱了……所以来这写篇帖子告慰一下自己熬的夜。。。
先看效果:
目前已知的拼接方法:
1、前端界面硬拼,总觉得不高端
2、JS等代码开发,没基础
3、用SQL在数据库层面拼接,能实现,感觉不是他该干的事
4、活字格服务端命令
5、其他还有什么更好的方法,请不吝赐教
目标json结构:
{
"time": "20240830",
"sign": "abc123",
"Model": {
"ModelId": "ModelId001",
"ModelText": "Model文本",
"req": {
"reqId": "reqId001",
"reqText": "req文本"
},
"head": {
"headId": "headId001",
"headText": "head文本"
},
"line": [
{
"lineId": "1",
"lineText": "line1文本",
"lot": [
{
"lotId": "lotId001",
"lotText": "lot1文本"
},
{
"lotId": "lotId002",
"lotText": "lot2文本"
}
]
},
{
"lineId": "2",
"lineText": "line2文本"
}
]
}
}
实现中遇到的几只拦路虎:
一、非主子表的结构怎么拼接?(别问为什么设计成这样子,我也想知道)
解决:设置变量中用单行记录+设置变量子属性
二、主子表拼接?
参考专题教程
帮你打开活字格更神奇的功能:九十六、服务端命令构建主子表的JSON结构
三、设了那么多参数,怎么用? 把名称区别开了挨个试
当前循环对象变量名称 》》 就是每次循环里面的那一条
所以在后面筛选行数据的时候,用的是“=Z3_head表_当前循环变量.headId”
四、指定循环次数的时候要怎么选?
选 “=Z3_head表变量”时,在后面行表筛选时才能选到 “=Z3_head表_当前循环变量.headId”
……
把想要的结构搞出来那一刻,忽然就觉得……嗯……我又行了……
其他说明:
json拼接head和line和lot 》》 父子孙表三层json
json拼接Z1和model 》》 见上文拦路虎一
json拼接all 》》最终结构
具体可查看附件
|
|