我正在研究JSONata,希望找到一种声明性语法来描述从分层的JSON数据到传统的、规范化的关系表的转换。
This示例使用了try.jsonata.org发票数据,并显示了对三个关系数据库表的转换...AccountTable,AccountOrderTable,AccountOrderProductTable。
注意,我正在遍历$.Account.Order数组两次...一次用于为AccountOrderTable生成记录,另一次用于为AccountOrderProductTable生成记录。闭包捕获$order,以便产品条目可以访问父$order.OrderID
虽然我可以迭代$.Account.Order数组两次,但我想知道是否有一种干净的方法来构造JSONata查询,以便$map操作只应用于每个数组一次。
问:我如何构造这个查询(同时生成相同的结果),以便只对$.Account.Order数组执行一次$map操作?
发布于 2018-04-06 21:51:07
我认为this产生了同样的结果,但是使用了临时绑定来消除围绕Order数组的双循环。当然,您可以争辩说,作为一种声明性语言,实现应该负责优化计算。但我怀疑实现者可能在一段时间内不会考虑到这一点。
https://stackoverflow.com/questions/49679871
复制相似问题