我正在使用 JSONata 来执行 JSON 到 JSON 的转换。
出于某些独特的原因,我想合并两个 JSONata 表达式:
举个例子 :
父表达式:
var script = `
{
"data":
{
"name" : data.payload.Name.(FirstName & ' ' & LastName),
"alias": data.payload.Name.(Salutation & ' ' & FirstName),
"active": data.payload.Status = 'New' ? true : false,
"signature": "Have good day ," & data.payload.Name.FirstName & "!"
}
}
`;
Run Code Online (Sandbox Code Playgroud)
我也有一些简单的赋值类型的 JSONata 表达式,例如:
表达式 1:
{
"source" : source
}
Run Code Online (Sandbox Code Playgroud)
表达式 2:
{
"data": {
"email" : data.payload.Email
}
}
Run Code Online (Sandbox Code Playgroud)
我想将以上两个表达式添加到使用script.
所以添加这两个表达式后,我应该能够得到:
var …Run Code Online (Sandbox Code Playgroud) 我需要能够使用 JSONata 将元素添加到任意复杂的对象。
我事先并不知道对象中的所有元素。
例如,假设我想添加
"newElement": { "a": 1, "b": 2 }
Run Code Online (Sandbox Code Playgroud)
对于一个看起来像这样的对象:
{ "xx": "An", "yy": "Example", "zz": 1 }
Run Code Online (Sandbox Code Playgroud)
但它可能有任意数量或混合的其他元素。
我可以替换整个对象,但我不知道如何添加它。
JSONata 文档“top-level-arrays-nested-arrays-and-array-flattening”涵盖了对象数组的“展平”情况,每个对象都包含一个包含数组值的属性。
但是,我一直无法弄清楚如何展平数组的数组。
问:用于展平数组数组的 JSONata 查询是什么?
输入
[ [1,2], [], [3] ]
Run Code Online (Sandbox Code Playgroud)
想要的
[ 1, 2, 3 ]
Run Code Online (Sandbox Code Playgroud) JSONata 中有没有办法让函数在提供的数组中找到特定字符串时返回 TRUE?例如我有一系列颜色:
const myArray = [红色、蓝色、绿色、粉色]
我试图找出一个表达式,该表达式将在该数组中搜索“蓝色”,如果找到该值则返回 true。
在 JSONata 文档中,我发现了一个名为 $boolean(arg) 的函数,我认为我需要使用它,但我不确定如何实现它。文档将参数类型选项显示为“数组:包含转换为 true 的成员”,但我无法真正告诉如何实现它。
它会像 $boolean(myArray, "blue") 一样简单吗?
我正在使用返回以下 JSON 的 API:
{
"rows": [
{
"keys": [
"search term 1",
"https://example.com/article-about-keyword-1/"
],
"clicks": 24,
"impressions": 54,
"ctr": 0.4444444444444444,
"position": 2.037037037037037
},
{
"keys": [
"search term 2",
"https://example.com/article-about-keyword-2/"
],
"clicks": 17,
"impressions": 107,
"ctr": 0.1588785046728972,
"position": 2.663551401869159
}
],
"responseAggregationType": "byPage"
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 JSONata 将其更改为更像这样的内容:
{
"rows": [
{
"keyword": search term 1,
"URL": https://example.com/article-about-keyword-1/,
"clicks": 24,
"impressions": 54,
"ctr": 0.4444444444444444,
"position": 2.037037037037037
},
{
"keyword": search term 2,
"URL": https://example.com/article-about-keyword-2/,
"clicks": 17,
"impressions": 107,
"ctr": 0.1588785046728972, …Run Code Online (Sandbox Code Playgroud)