我正在调查JSONata,这是我寻找一种声明性语法的一部分,用于描述从分层JSON数据到传统的,规范化的关系表的转换。
This示例使用try.jsonata.org发票数据并显示三个RDBMS表的转换... AccountTable,AccountOrderTable,AccountOrderProductTable。
观察我正在迭代$ .Account.Order数组两次...一次为AccountOrderTable生成记录,并再次生成AccountOrderProductTable的记录。闭包捕获$ order,以便产品条目可以访问父$ order.OrderID
虽然我可以两次迭代$ .Account.Order数组,但我想知道是否有一种干净的方法来构造JSONata查询,以便$ map操作只对每个数组应用一次。
问:我怎样才能构造这个查询(同时产生相同的结果),这样我只需$ $ $ $ .Account.Order数组一次映射?答案 0 :(得分:0)
我认为this会产生相同的结果,但会使用临时绑定来消除围绕id
数组的双循环。当然,您可以认为作为一种声明性语言,实现应该负责优化评估。但是我怀疑实施者可能暂时不会这样做。