当前位置: 首页 > 知识库问答 >
问题:

使用颠簸变换取消嵌套数组

隆礼骞
2023-03-14

我正在尝试转换一个包含数组的JSON对象,并将数据卸载为单独的JSON。基本上,我需要为数组的每个元素创建一个对象,并复制所有外部数据。示例:

输入

{
  "id": 3435,
  "startTime": "2019-10-30T10:00:00Z",
  "sportType": "FOOTBALL",
  "participants": [
    {
      "id": 1234,
      "name": "Team A",
      "position": "HOME"
    },
    {
      "id": 5678,
      "name": "Team B",
      "position": "AWAY"
    }
  ]
}

预期产出

{
  "id": 3435,
  "startTime": "2019-10-30T10:00:00Z",
  "sportType": "FOOTBALL",
  "participant_id": 1234,
  "participant_name": "Team A"
  "participant_position": "HOME"
},
{
  "id": 3435,
  "startTime": "2019-10-30T10:00:00Z",
  "sportType": "FOOTBALL",
  "participant_id": 5678,
  "participant_name": "Team B"
  "participant_position": "AWAY"
}  

我尝试的规格:

[
  {
    "operation": "shift",
    "spec": {
      "id": "newID",
      "startTime": "startTime",
      "sportType": "sportType",
      "participants": {
        "*": {
          "id": "participant.&1.participant_id",
          "name": "participant.&1.participant_name",
          "position": "participant.&1.participant_position"
        }
      }
    }
  }
]

我对 Jolt 很陌生,并尝试了几个不起作用的规格。我在取消嵌套部分时遇到问题。谢谢你的帮助。

共有1个答案

佘飞鸣
2023-03-14

这个规范应该有效:

[
  {
    "operation": "shift",
    "spec": {
      "participants": {
        "*": {
          "id": "[#2].participant_id",
          "name": "[#2].participant_name",
          "position": "[#2].participant_position",
          "@(2,id)": "[#2].id",
          "@(2,startTime)": "[#2].startTime",
          "@(2,sportType)": "[#2].sportType"
        }
      }
    }
  }
]

为了完整起见,ForkRecord和FlattenJson做了与上述规范类似的事情,使用这些规范可能比尝试找出JOLT规范更容易。

 类似资料:
  • 我正在尝试为以下输入创建震动转换: 所需输出为: 我刚刚开始理解jolt转换的基础,但是对于嵌套结构来说,这似乎有点复杂。

  • 我正在尝试为下面的输入编写一个震动转换 - 预期产量为- 我的规格是- 规范没有按照预期的输出进行转换。我想学习如何在字符串解析器中使用属性。

  • 我正在尝试在NIFI中创建一个jolt转换,我有一个带有标题、细节和行细节的JSON消息作为带有行细节对象的数组。 我们可以将标头/详细JSON转换为详细JSON吗?每个详细都有一个单独的JSON,带有2个新标签,具有“TRADETYP”和“TRANSPORT_CODE”的详细属性值的扁平数组 "TRADETYPALLLINES":["GR"、"EXP"、"SE"]"TRANSPORT_CODE_

  • 我需要Jolt转换的帮助。我有数组,由许多json对象组成。(https://jolt-demo.appspot.com/) Jolt需要进行哪些转换才能获得以下结果? 现在我有了下一个Jolt构造: 但以下结果不正确:

  • 我已经将一个jso转换为另一个json。一切看起来都很好。除了下面的场景。 输入Json: 预期的JSON: 有人能帮我写这个转换的规范吗?

  • 我正在将两个对象数组转换为一个对象数组。在这样做的时候,根据项目的类型,我需要为每个项目分配一个id。并且,在将这些项放入单个数组之后,ID应该是串行的,按照它们最初出现在输入JSON中的顺序。它不是所有项目的单个itemId。它基于自己的类型。PFB输入和输出JSON示例。使用jolt-core[0.1.0]。请帮忙。 如上所述,hotId和coldId是输出中的新字段。但是,它会增加。