问题标签 [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.

0 投票
1 回答
373 浏览

jsonata - 如何使用 jSONata 以高效的方式连接 2 个数组?

我想使用 JSONata 以一种高性能的方式加入 2 个具有大约 500 个元素的数组。

我找到了一种加入 2 个数组的方法,但它的性能不是很好。请参阅https://try.jsonata.org/VqzeZDAjA (下面复制了相同的输入/输出和查询)。

输入 :

预期输出:

工作查询,但在具有 500 个元素的数组的情况下性能不佳。

2020-03-29 更新

上面声称工作查询(见上文)的性能不是很好。进一步分析表明这不是真的:上述查询的实际性能很好(类似于批准查询的性能)。我遇到的性能问题是由另一个与此连接无关的 JSONata 查询引起的!

0 投票
1 回答
173 浏览

jsonata - 如何使用 JSONata 将嵌套对象展平为单个深度对象?

我是 JSONata 的新手,在创建扁平化函数时遇到了一些麻烦。

我想打开这个输入:

进入这个:

谁能帮我?在这里和谷歌上搜索,找不到可以引导我走向正确方向的东西。

谢谢

0 投票
1 回答
874 浏览

json - Jsonata 通过查看父元素过滤值

我有以下形式的 JSON blob:

我只想检查属性类型的分数ab是否小于 10。但是$min(allEntries.values.score)会遍历所有属性并且不会过滤掉我不感兴趣的类型。我尝试使用父属性“%”。但是这也不起作用(The object representing the 'parent' cannot be derived from this expression

0 投票
2 回答
135 浏览

jsonata - 如何使用 JSONata 以高性能方式计算累积数组的增量数组?

我有一个由 253 个位置对象组成的 json 结构。每个位置对象都有一个数组,报告随时间累积的总数(数组有 67 个元素)。

我想用一个数组(增量数组)扩展 json 结构中的每个位置对象,该数组根据累积的总数组报告增加。

以下 json 查询正确地执行了此任务:

该查询的问题是在我的英特尔 NUC 设备上执行大约需要 66 秒。

JSONata 练习器链接包含 json 输入结构的示例以及我使用的查询:

请注意,当我打开该链接时,它正在报告Expression evaluation timeout: Check for infinite loop,因为查询也需要很长时间才能在我的 JSONata 练习器窗口中执行。

0 投票
1 回答
610 浏览

json - JSONata 数据映射模板

我开始使用 JSONata 进行数据转换,我想知道是否存在一种方法来拥有一个包含 json 文件中某些字段的值转换的文件。

我将不得不进行多种转换类型,但大多数情况是将字段值从“A”转换为“B”,我将更容易在文件中执行此操作,以免创建新版本的数据转换并且只需要在此文件中创建一个新条目。

问候

0 投票
1 回答
160 浏览

jsonata - 如何在 Jsonata 中以 $match 模式传递动态字符串?

当我尝试直接在模式 /2020-04-01,ARS,AED/ 中传递值时,但是当我尝试传递变量时,我没有得到输出

0 投票
1 回答
90 浏览

json - JSONata:提取最小/最大温度,包括时间戳

我们有这个 JSON 数据

获得最高温度很容易$max(Temperatur)。但是如何才能提取出对应的时间戳呢?

0 投票
2 回答
294 浏览

jsonata - 如果在 JSON (JSONata) 中找不到值,如何抛出错误

如果找不到值,有没有办法抛出错误?

JSON:

数据格式: "order=" & order & ",qty=" & qty

如果order不在 JSON 中,将使用空值。如果值不存在,我想抛出一个错误,例如:

"order=" & $not_empty(order) & ",qty=" & qty

谢谢!

0 投票
1 回答
70 浏览

jsonata - jsonata $merge instanceof 信息丢失

我正在使用 JSONata 从 JSON 构建 TypeScript OO 模型。

驱动因素之一是拥有 JSON 的完全类型化的对象模型表示。

如果我$merge([...])在从源 JSON 映射到对象模型时使用,instanceof则不会保留信息。

也许用一个例子更好地说明: -

考虑一个注册函数myFactory来创建一个对象的实例:

如果我只是使用工厂,像这样:

然后result.person instanceof Person就是true

但是,如果我使用$merge([..])类型信息丢失:

然后result.person instanceof Person就是false

这似乎是这里造成的。

目前我正在通过将对象的所有属性传递给工厂函数来解决它,例如:

有更好的选择吗?

0 投票
1 回答
125 浏览

jsonata - JSONata 递归映射

我正在尝试执行递归映射。

这是我的例子:https ://try.jsonata.org/jN2b0Pt2t

我在这个简单的复制器中,试图将带有“姓名”、“年龄”和“父母”的原始“人”重新映射为“n”和“p”(代表映射的“姓名”和“父母” )。

我无法弄清楚为什么这不起作用。

如果我$person($v)$map(..)函数中使用,我会得到一个堆栈溢出错误,所以我知道递归正在发生!

任何帮助表示赞赏。

谢谢,

麦克风