问题标签 [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 投票
2 回答
1489 浏览

javascript - JSONata(或 JS)——对 JSON 数组/对象进行分组和求和

我想从以下数组中“groupsum”一个带有 JSONata 的对象数组:

结果必须如下所示:

我试过了:

但我只得到一个空字符串。

有什么建议吗?

0 投票
2 回答
1480 浏览

arrays - JSONata 按数组排序/排序

我想订购一个数组。下面的 JSONata 表达式有一个传入数组,如下所示。

然后,我使用以下 JSONata 表达式转换数组:

但现在我想 - 在同一个 JSONata 表达式中,首先对控制器进行排序,然后对 GPIO 进行排序。仅先尝试使用控制器。

我试过:

以及尝试使用 ~> 链接命令在末尾添加排序功能。我还尝试了order-by运算符。

谁能指出我正确的方向?

//------------ 将“ESP62”更改为“-”的新流程不起作用:

0 投票
2 回答
91 浏览

json - 我需要使用 JSONATA 的以下格式的 json 数据

json下面是我的输入。

使用JSONATA我需要将上面的 JSON 格式化为以下格式。

我试过payload.[$keys()]了,但这只会产生数组格式的键,而不是数组格式的整个对象。

0 投票
0 回答
228 浏览

java - 为什么在“Exerciser”应用程序中使用正则表达式的语法在 jsonata4java 中不起作用?

我正在尝试使用 $match 运算符和谓词中的正则表达式来使用 jsonata4java。

jsonata 代码已在 JSonata 练习器应用程序上成功测试,但在我的 java 测试中失败,错误消息似乎来自 antlr(词法分析器/解析器)。锻炼器与相同的输入一起使用。

尝试的事情:1)升级到最新版本的jsonata4java(1.0.5)。2) 转义某些字符的各种方法(在黑暗中拍摄) 3) 简化表达式 4) 在谓词中使用 lambda 样式 (tin ~> /regex/) 而不是匹配 5) 逐步执行一些生成的解析代码

我希望这段代码只显示“id”属性“1234”。相反,它会在执行 Expressions.parse(expression) 时引发异常。错误消息的文本是:

嘿嘿,好久没发帖了,多谢帮助。

0 投票
3 回答
586 浏览

javascript - 在 JavaScript 中使用 JSONata?

我是一名 JavaScript 学生,最近遇到了 JSONata。

我正在创建一个应用程序,我们的后端要求我们以以下格式发送日期时间字段:"2019-04-25T11:36:30.254Z"

我看到我们可以通过 $now() 函数使用 JSONata 来获得它。

我不确定我们如何将 JSONata 与 JavaScript 一起使用。或者有没有办法使用 JavaScript 以上述格式获取日期时间?

我在下面尝试了直到现在但没有成功:

我还尝试了简单的 javascript 日期时间对象,但这并没有给我所需的格式。

0 投票
4 回答
630 浏览

javascript - JSONata获取父元素

在一个相当复杂的 JSON 对象中,我试图获取具有父值的键。

我想将对象更改为:

我已经浏览了整个文档,并没有发现任何类似.parent()方法的东西。
也许可以通过一些更高阶的函数来实现预期的结果,但目前我不知道如何实现这一点。

0 投票
1 回答
196 浏览

jsonata - 将数组包装在 JSONata 中的数组中

假设我有一个如下所示的数据结构:

我想返回包装在数组中的“a”:

在 JSONata 中有什么方法可以做到这一点吗?

直观地,您会尝试[a],您希望将数组返回为[[1,2,3]],但这会返回[1,2,3],因为 JSONata 中的数组单例等效性。

0 投票
0 回答
359 浏览

jsonata - 如何优化表达式以避免评估超时?

使用有限的数据集时,我的 jsonata 表达式按预期工作,但使用较大的数据集时,我不断收到“表达式评估超时:检查无限循环”。有没有办法优化这个表达式以避免超时?

检查try.jsonata.org/ryGcRwxkr以获取具有工作数据集的示例。请尝试粘贴此 json

提前致谢!

更新

我发现这是 JSONata Excerciser 的一个限制。无论如何,我想优化表达式,因为它非常需要资源。再次感谢!

0 投票
1 回答
971 浏览

javascript - 在 Node-RED 切换节点中使用上下文值

我正在使用 Node-RED 中的 Switch 节点来确定是否应该批量上传缓冲数组(存储在上下文对象中)

我希望财产是flow.batchData.length,条件是>= 100

如果我选择属性类型为flow.,并将属性值设置为batchData,则我无法访问length数组的属性。

我尝试使用 Javascript 表达式属性类型,但以下值不起作用:flow.get("batchData").length.

如何使用存储在 Switch 节点上下文中的对象的长度?


此处导出节点:

0 投票
2 回答
444 浏览

jsonata - 如何从子节点访问父节点

如何从子节点访问父对象。似乎我无法访问范围

这是源json

这是我的乔纳塔

我是否必须将“内容”保存在某种变量中并将其传递给孩子?