问题标签 [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.
javascript - JSONata(或 JS)——对 JSON 数组/对象进行分组和求和
我想从以下数组中“groupsum”一个带有 JSONata 的对象数组:
结果必须如下所示:
我试过了:
但我只得到一个空字符串。
有什么建议吗?
arrays - JSONata 按数组排序/排序
我想订购一个数组。下面的 JSONata 表达式有一个传入数组,如下所示。
然后,我使用以下 JSONata 表达式转换数组:
但现在我想 - 在同一个 JSONata 表达式中,首先对控制器进行排序,然后对 GPIO 进行排序。仅先尝试使用控制器。
我试过:
以及尝试使用 ~> 链接命令在末尾添加排序功能。我还尝试了order-by运算符。
谁能指出我正确的方向?
//------------ 将“ESP62”更改为“-”的新流程不起作用:
json - 我需要使用 JSONATA 的以下格式的 json 数据
json下面是我的输入。
使用JSONATA我需要将上面的 JSON 格式化为以下格式。
我试过payload.[$keys()]
了,但这只会产生数组格式的键,而不是数组格式的整个对象。
至
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) 时引发异常。错误消息的文本是:
嘿嘿,好久没发帖了,多谢帮助。
javascript - 在 JavaScript 中使用 JSONata?
我是一名 JavaScript 学生,最近遇到了 JSONata。
我正在创建一个应用程序,我们的后端要求我们以以下格式发送日期时间字段:"2019-04-25T11:36:30.254Z"
我看到我们可以通过 $now() 函数使用 JSONata 来获得它。
我不确定我们如何将 JSONata 与 JavaScript 一起使用。或者有没有办法使用 JavaScript 以上述格式获取日期时间?
我在下面尝试了直到现在但没有成功:
我还尝试了简单的 javascript 日期时间对象,但这并没有给我所需的格式。
javascript - JSONata获取父元素
在一个相当复杂的 JSON 对象中,我试图获取具有父值的键。
我想将对象更改为:
我已经浏览了整个文档,并没有发现任何类似.parent()
方法的东西。
也许可以通过一些更高阶的函数来实现预期的结果,但目前我不知道如何实现这一点。
jsonata - 将数组包装在 JSONata 中的数组中
假设我有一个如下所示的数据结构:
我想返回包装在数组中的“a”:
在 JSONata 中有什么方法可以做到这一点吗?
直观地,您会尝试[a]
,您希望将数组返回为[[1,2,3]]
,但这会返回[1,2,3]
,因为 JSONata 中的数组单例等效性。
jsonata - 如何优化表达式以避免评估超时?
使用有限的数据集时,我的 jsonata 表达式按预期工作,但使用较大的数据集时,我不断收到“表达式评估超时:检查无限循环”。有没有办法优化这个表达式以避免超时?
检查try.jsonata.org/ryGcRwxkr以获取具有工作数据集的示例。请尝试粘贴此 json。
提前致谢!
更新
我发现这是 JSONata Excerciser 的一个限制。无论如何,我想优化表达式,因为它非常需要资源。再次感谢!
javascript - 在 Node-RED 切换节点中使用上下文值
我正在使用 Node-RED 中的 Switch 节点来确定是否应该批量上传缓冲数组(存储在上下文对象中)。
我希望财产是flow.batchData.length
,条件是>= 100
。
如果我选择属性类型为flow.
,并将属性值设置为batchData
,则我无法访问length
数组的属性。
我尝试使用 Javascript 表达式属性类型,但以下值不起作用:flow.get("batchData").length
.
如何使用存储在 Switch 节点上下文中的对象的长度?
此处导出节点:
jsonata - 如何从子节点访问父节点
如何从子节点访问父对象。似乎我无法访问范围
这是源json
这是我的乔纳塔
我是否必须将“内容”保存在某种变量中并将其传递给孩子?