问题标签 [jsonata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsonata - 在 JSONata 中,数组上下文中通配符 * 运算符的文档在哪里?
在JSONata query to flatten array of arrays 中,SteveR 指出可以$.*
用来展平数组。
我搜索了文档并在对象上下文中找到了对通配符 ( ) 的引用。但是,我还没有在 JSONata 的数组上下文中找到通配符 () 运算符的行为定义。
展平行为似乎类似于 XQuery 中的序列展平。
问:JSONata 记录的数组上下文中通配符 (*) 的行为在哪里?
jsonata - JSONata 防止数组展平
问:如何防止 JSONata 在数组构造函数中“自动展平”数组?
给定 JSON 数据:
JSONata 查询似乎选择了 4 个值:
$.x 和 $.y 的嵌套数组被展平/内联到我的外包装中,导致超过 4 个值:
我想达到的结果是
我可以通过使用来实现这一点
但这需要我先验地知道$.x 和 $.y 是数组。
我想选择 4 个值并让结果数组恰好包含 4 个值,与所选值的类型无关。
显然,关于 JSONata 序列和数组之间的交互,有些事情我无法理解。
jsonata - 如何在 JSONata 中获取数组中元素的索引
JSONata 提供了几个函数来操作数组内容。但是,我不知道如何返回找到的元素的索引(类似于 JavaScript 中的 Array.indexOf 函数)。我正在寻找类似的东西:
jsonata - JSONata 查询...请求反馈
我正在调查 JSONata,作为我寻求一种声明性语法来描述从分层 JSON 数据到传统、规范化、关系表的转换的一部分。
此示例使用 try.jsonata.org 发票数据并显示对三个 RDBMS 表的转换... AccountTable、AccountOrderTable、AccountOrderProductTable。
请注意,我在 $.Account.Order 数组中迭代了两次……一次为 AccountOrderTable 生成记录,再次为 AccountOrderProductTable 生成记录。闭包捕获 $order 以便产品条目可以访问父 $order.OrderID
虽然我可以对 $.Account.Order 数组进行两次迭代,但我想知道是否有一种干净的方法来构造 JSONata 查询,以便 $map 操作只应用于每个数组一次。
问:我怎样才能构造这个查询(同时生成相同的结果),以便我只 $map 一次 $.Account.Order 数组?
jsonata - 构建 JSONata 查询所需的帮助
我正在尝试使用 try.jsonata.org 发票数据构建 JSONata 查询。
我试图提出的问题是select distinct OrderID where Order.Product.Price is < 50?
我无法弄清楚如何使用方括号表示法中的谓词来做到这一点......当我试图通过 $.Account.Order.Product 数组时,我的尝试被挫败了。
使用 $map 和 $reduce 我能够想出这个相当复杂的解决方案......它仍然不能正确处理重复的 OrderID。(我看到这里已经请求了重复删除的问题)
问:在 JSONata 中表达这个查询的正确方法是什么?
jsonata - JSONata:用于测试 JSON 值数据类型的方法或函数
JSONata 提供条件表达式和谓词,可用于从 JSON 树中选择值。
但是,我还没有找到一种方法来测试 JSON 值的数据类型。
例如,给定数组:
我只想提取数值。
问:在 JSONata 查询中,如何测试一个值的 JSON 数据类型(null、boolean、number、string、array、object)?
jsonata - JSONata 中的组值
是否可以通过 JSONata 按特定属性对项目进行分组
例如,按照 resultDate 的值对 json 进行分组。
要生成以下输出:
也许使用 reduce 函数将元素分组,如本博文中所述。https://www.datchley.name/getting-functional-with-javascript-part-2/
json - 如何通过 JSONata 提取选择性键?
我只想从下面的对象中提取产品名称、产品 ID、SKU
预期结果:
尝试过的解决方案:
直接对象映射:
/li>筛:
/li>
需要一种更简单的方法来做到这一点。就像是: