问题标签 [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 回答
110 浏览

jsonata - 在 JSONata 中将月或年添加到毫秒

我想在 JSONata 中以毫秒为单位将给定日期添加几个月或几年,以便它可以执行类似今天加上三个月的操作。我在 JSONata 中没有找到任何函数来完成这项工作,所以我自己实现了一个函数。我以毫秒为单位计算了一个月,并将其乘以我想要添加的月数。下面的代码显示了函数的作用。

这似乎有效,但我不知道它有多准确,因为每个月的天数都不一样。那么有没有更好的解决方案来获得更准确的结果呢?

0 投票
1 回答
162 浏览

arrays - JSONata 转换操作删除数组元素

我正在使用 JSONata 将整个输入返回到结果集中,但删除了输入中指定的数组中的某些元素。

这让我了解此处记录的“转换”操作:https ://docs.jsonata.org/other-operators#-------transform

您可以在其中通过路径匹配数据,提供要添加到匹配内容的对象,然后可以选择指定字符串或字符串数​​组来表示要删除的数据的键。

但是你真的可以使用这个操作从一个匹配条件的数组中删除一个元素吗?我可以把它变成一个空的对象,但这不是我想要的。我想完全删除它。

要使用 try.jsonata.org 中的 Product-Order 示例,请考虑以下示例:https ://try.jsonata.org/QaZyN6nHr

该表达式$ ~> |Account.Order.Product[SKU!="0406654608"]|$, $keys($)|返回一切正确 - 查找并替换元素中Product没有特定 SKU 的所有元素。上面的操作数$keys($)说“从所选对象中删除所有键 - 一个空对象。所以我们从这个开始:

但根据上述呈现空对象:

所以主要问题是我不只是想删除数组内的对象中的值......我想删除对象本身

那么我怎样才能得到它,使输出看起来像这样呢?

那么我应该在下面的“删除”部分中添加什么?

0 投票
1 回答
30 浏览

jsonata - 如何使用 JSON Query 交叉引用属性

考虑遵循 JSON。

我想获得“Measurement”,使得“measurementID”等于“mid”节点的值。

此查询有效,但它具有硬编码值 'RR' $.myroot.measurements[measurementID = "RR"]

我想在查询中引用其他属性。我尝试了以下查询,但没有奏效

$.myroot.measurements[measurementID = $.**.mid]

有人可以告诉我正确的查询是什么。

阿图尔

0 投票
0 回答
40 浏览

jsonata - Jsonata 版本 1.8.5 存在未定义对象的问题

似乎您的最新版本 1.8.5(尽管是维护版本)正在强制对未定义的选项进行例外处理。group 和 map 运算符不再适用于未定义的对象。

你能告诉我这是不是故意的吗?如果是这样,您能否让我知道是否已实施任何简单的空检查,而不是使用合并运算符?

谢谢你。

0 投票
1 回答
71 浏览

javascript - 在 UI 中输入值和示例数据时使用 JSONata 获取动态输出

我尝试将动态输入值传递给 JSONata,但它没有将其放入行中:15 我正在使用 $add(),在其中我正在为其分配输入值,但它不起作用。

I am creating $add() function inside JSONata method and return dynamic input value but it is not giving desired output.

As of now I am getting whatever I am passing inside field but what I need is when I pass key for Ex:"name" I should get that value using jsonata expression. I need output same as what JSONata method returns

Let me know If I need to provide any other information

0 投票
1 回答
101 浏览

lookup - 如何在数组中使用 JSONata $lookup()?

我正在尝试使用辅助映射表来翻译属性内容。“电话”是数据,“辅助”是具有映射表的对象。

$lookup 似乎很合适,我编写了以下 JSONata 代码

数组内部的“tipo”不起作用,但在外部,对于任何特定的数组成员似乎都可以正常工作。

我错过了什么?谢谢

0 投票
1 回答
118 浏览

json - 如何使用 JSONata 附加嵌套在 JSON 对象内的数组

我正在尝试使用 JSONata 在以下 JSON 的“选项”数组中附​​加一个额外的对象:

这样就变成了:

但是,当我尝试使用 append 函数时,我很难返回父 JSON 以及嵌套在其中的附加对象。

JSONata fiddler 链接在这里:https ://try.jsonata.org/iv7zhPZcr

谁能阐明我哪里出错了?

提前谢谢了。乔纳森

0 投票
1 回答
63 浏览

jsonata - 使用 jsonata 从数组的过滤结果投影

我有兴趣使用 jsonata 来过滤我的 json 结果,这是一个数组。我可以使用 $[predicate] 过滤数组,但是如何输出每个对象中的选定键?这意味着,对结果数组中的每个对象进行项目操作?

这是一个例子 -

输入:

仅选择 a 和 c 的预期结果:

0 投票
1 回答
98 浏览

javascript - 尝试使用现有对象中的 jsonata 创建对象

尝试使用 jsonata 从现有对象中创建对象。当数据和表达式放入 jsonata excerciser 时,会生成正确的结果。但是,当我在 Javascript 程序中运行它时,会产生错误。

以下是javascript代码

我收到错误 - ReferenceError: compCode 未定义

当我将其更改为 data.compCode 和所有其他类似的对象属性时,我收到错误 TypeError: path.charAt is not a function。有人可以告诉我如何让它工作。提前致谢

0 投票
1 回答
54 浏览

jsonata - 如果数组包含特定字符串,则选择特定值 - JSONata

努力使用 JSONata 表达式为角色“开发人员”选择电子邮件值。下面的表达式将值返回为 true,但不确定如何为该特定列表选择电子邮件字段值。

(( .roles)中的“开发人员” )**