标签: jsonata

合并两个 JSONata 表达式

我正在使用 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)

javascript json transformation jsonata

5
推荐指数
1
解决办法
693
查看次数

如何使用 JSONata 添加到现有对象?

我需要能够使用 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

2
推荐指数
1
解决办法
5598
查看次数

JSONata 查询压平数组数组

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

2
推荐指数
2
解决办法
3453
查看次数

如果数组包含特定字符串则返回 True - JSONata

JSONata 中有没有办法让函数在提供的数组中找到特定字符串时返回 TRUE?例如我有一系列颜色:

const myArray = [红色、蓝色、绿色、粉色]

我试图找出一个表达式,该表达式将在该数组中搜索“蓝色”,如果找到该值则返回 true。

在 JSONata 文档中,我发现了一个名为 $boolean(arg) 的函数,我认为我需要使用它,但我不确定如何实现它。文档将参数类型选项显示为“数组:包含转换为 true 的成员”,但我无法真正告诉如何实现它

它会像 $boolean(myArray, "blue") 一样简单吗?

jsonata

2
推荐指数
1
解决办法
5101
查看次数

如何使用 JSONata 更改 JSON 响应

我正在使用返回以下 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)

jsonata

1
推荐指数
1
解决办法
391
查看次数

标签 统计

jsonata ×5

javascript ×1

json ×1

transformation ×1