【问题标题】:JSON to JSON transformation on keys using Jolt使用 Jolt 对键进行 JSON 到 JSON 转换
【发布时间】:2020-05-09 14:30:14
【问题描述】:

这里是新手!我想从这个模板转换一个 JSON 输入:

[
  {
    "canalId": "",
    "startDate": "",
    "typeCanal": "",
    "origin": "",
    "principal": false,
    "ligne1": "",
    "ligne2": "",
    "ligne4": "",
    "ligne6": ""
  },
  {
    ...
  }
]

到同一个模板,只有一些键改变名称:

[
  {
    "id_canal": "",
    "startDate": "",
    "media": "",
    "origin": "",
    "principal": false,
    "adrL1": "",
    "adrL2": "",
    "adrL3": "",
    "adrL4": ""
  },
  {
    ...
  }
]

到目前为止,我设法使用了这个规范:

[
    {
      "operation": "shift",
      "spec": {
        "*": {
          "canalId": "&1.id_canal",
          "typeCanal": "&1.media",
          //More if needed
          "*": "&1.&"
        }
      }
    }
  ]

但是它返回了一些我不需要的索引,另外我想保留它是一个 Json 数组的事实,也就是方括号。

或者这个,但它需要对传入的 JSON 进行拆分以仅处理其中的一部分:

[
  {
    "operation": "shift",
    "spec": {
      "canalId": "id_canal",
      "typeCanal": "media",
      // More if needed
      "*": "&"
    }
  }
]

但在这种情况下,我希望它成为一个 JSON 数组,而不仅仅是一个 JSON 对象。

我在骆驼路线中使用所有这些,因为这是要求,有没有我可以使用的规范来解决问题?或者也许是基于骆驼本身的另一个想法?

提前致谢!

【问题讨论】:

标签: java json apache-camel transformation jolt


【解决方案1】:

在你之后添加一个额外的班次就可以了:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "canalId": "&1.id_canal",
        "typeCanal": "&1.media",
        //More if needed
        "*": "&1.&"
      }
    }
    },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "[&1].&"
      }
    }
    }
  ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2021-10-05
    • 2017-09-20
    • 1970-01-01
    • 2023-01-23
    相关资源
    最近更新 更多