【问题标题】:Jolt - issue with combined values when added at same levelJolt - 在同一级别添加时组合值的问题
【发布时间】:2022-06-14 01:27:08
【问题描述】:

我刚开始使用 jolt

目前面临组合地图数组的问题。

我有一个地图数组,每个地图中的 1 个键都有一个字符串数组 - 如输入 JSON 所示。

我正在尝试将所有键/值组合到单个地图数组中 - 如预期输出所示

当合并时,值会合并而不是单独添加。

感谢任何帮助。

输入 JSON

 {
  "items": [
    {
      "frontItem": [
        "frontItem1"
      ],
      "base": "base1"
    },
    {
      "frontItem": [
        "frontItem2",
        "frontItem3"
      ],
      "base": "base2"
    }
  ]
}

Jolt Spec 创建

[
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "frontItem": {
            "*": {
              "@": "modified-items.[&].frontItem",
              "@(2,base)": "modified-items.[&].base"
            }
          }
        }
      }
    }
  }
]

预期输出

{
  "modified-items": [
    {
      "frontItem": "frontItem1",
      "base": "base1"
    },
    {
      "frontItem": "frontItem2",
      "base": "base2"
    },
    {
      "frontItem": "frontItem3",
      "base": "base2"
    }
  ]
}

已创建规范的当前输出

{
  "modified-items": [
    {
      "frontItem": [
        "frontItem1",
        "frontItem2"
      ],
      "base": [
        "base1",
        "base2"
      ]
    },
    {
      "frontItem": "frontItem3",
      "base": "base2"
    }
  ]
}

【问题讨论】:

    标签: json apache-camel jolt


    【解决方案1】:

    您已经很接近解决方案了。只需通过 @(3,base) 分隔值,同时遍历 frontItem 列表的索引,例如

    [
      {
        "operation": "shift",
        "spec": {
          "items": {
            "*": {
              "frontItem": {
                "*": {
                  "@": "@(3,base).[&].frontItem",
                  "@(2,base)": "@(3,base).[&].base"
                }
              }
            }
          }
        }
      },
      {
        "operation": "shift",
        "spec": {
          "*": {
            "*": ""
          }
        }
      }
    ]
    

    网站上的演示 http://jolt-demo.appspot.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多