问题标签 [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 以高效的方式连接 2 个数组?
我想使用 JSONata 以一种高性能的方式加入 2 个具有大约 500 个元素的数组。
我找到了一种加入 2 个数组的方法,但它的性能不是很好。请参阅https://try.jsonata.org/VqzeZDAjA (下面复制了相同的输入/输出和查询)。
输入 :
预期输出:
工作查询,但在具有 500 个元素的数组的情况下性能不佳。
2020-03-29 更新
上面声称工作查询(见上文)的性能不是很好。进一步分析表明这不是真的:上述查询的实际性能很好(类似于批准查询的性能)。我遇到的性能问题是由另一个与此连接无关的 JSONata 查询引起的!
jsonata - 如何使用 JSONata 将嵌套对象展平为单个深度对象?
我是 JSONata 的新手,在创建扁平化函数时遇到了一些麻烦。
我想打开这个输入:
进入这个:
谁能帮我?在这里和谷歌上搜索,找不到可以引导我走向正确方向的东西。
谢谢
json - Jsonata 通过查看父元素过滤值
我有以下形式的 JSON blob:
我只想检查属性类型的分数ab
是否小于 10。但是$min(allEntries.values.score)
会遍历所有属性并且不会过滤掉我不感兴趣的类型。我尝试使用父属性“%”。但是这也不起作用(The object representing the 'parent' cannot be derived from this expression
)
jsonata - 如何使用 JSONata 以高性能方式计算累积数组的增量数组?
我有一个由 253 个位置对象组成的 json 结构。每个位置对象都有一个数组,报告随时间累积的总数(数组有 67 个元素)。
我想用一个数组(增量数组)扩展 json 结构中的每个位置对象,该数组根据累积的总数组报告增加。
以下 json 查询正确地执行了此任务:
该查询的问题是在我的英特尔 NUC 设备上执行大约需要 66 秒。
JSONata 练习器链接包含 json 输入结构的示例以及我使用的查询:
请注意,当我打开该链接时,它正在报告Expression evaluation timeout: Check for infinite loop
,因为查询也需要很长时间才能在我的 JSONata 练习器窗口中执行。
json - JSONata 数据映射模板
我开始使用 JSONata 进行数据转换,我想知道是否存在一种方法来拥有一个包含 json 文件中某些字段的值转换的文件。
我将不得不进行多种转换类型,但大多数情况是将字段值从“A”转换为“B”,我将更容易在文件中执行此操作,以免创建新版本的数据转换并且只需要在此文件中创建一个新条目。
问候
jsonata - 如何在 Jsonata 中以 $match 模式传递动态字符串?
当我尝试直接在模式 /2020-04-01,ARS,AED/ 中传递值时,但是当我尝试传递变量时,我没有得到输出
json - JSONata:提取最小/最大温度,包括时间戳
我们有这个 JSON 数据
获得最高温度很容易$max(Temperatur)
。但是如何才能提取出对应的时间戳呢?
jsonata - 如果在 JSON (JSONata) 中找不到值,如何抛出错误
如果找不到值,有没有办法抛出错误?
JSON:
数据格式:
"order=" & order & ",qty=" & qty
如果order
不在 JSON 中,将使用空值。如果值不存在,我想抛出一个错误,例如:
"order=" & $not_empty(order) & ",qty=" & qty
谢谢!
jsonata - jsonata $merge instanceof 信息丢失
我正在使用 JSONata 从 JSON 构建 TypeScript OO 模型。
驱动因素之一是拥有 JSON 的完全类型化的对象模型表示。
如果我$merge([...])
在从源 JSON 映射到对象模型时使用,instanceof
则不会保留信息。
也许用一个例子更好地说明: -
考虑一个注册函数myFactory
来创建一个对象的实例:
如果我只是使用工厂,像这样:
然后result.person instanceof Person
就是true
。
但是,如果我使用$merge([..])
类型信息丢失:
然后result.person instanceof Person
就是false
。
这似乎是这里造成的。
目前我正在通过将对象的所有属性传递给工厂函数来解决它,例如:
有更好的选择吗?
jsonata - JSONata 递归映射
我正在尝试执行递归映射。
这是我的例子:https ://try.jsonata.org/jN2b0Pt2t
我在这个简单的复制器中,试图将带有“姓名”、“年龄”和“父母”的原始“人”重新映射为“n”和“p”(代表映射的“姓名”和“父母” )。
我无法弄清楚为什么这不起作用。
如果我$person($v)
在$map(..)
函数中使用,我会得到一个堆栈溢出错误,所以我知道递归正在发生!
任何帮助表示赞赏。
谢谢,
麦克风