Jolt Json转换:通过引用标识符(而不是索引)设置值

gab6jxml  于 2023-10-21  发布在  其他
关注(0)|答案(1)|浏览(100)

我正在尝试创建NIFI Jolt转换,我想通过原始集合中的键从另一个JSON集合中附加一些值(通过EventCodes中引用的EventCodePrefixId从EventCodePrefixes分配前缀):
索取样品:

{
  "EventCodes": [
    {
      "EventCodePrefixId": 2
    },
    {
      "EventCodePrefixId": 2
    }
  ],
  "EventCodePrefixes": [
    {
      "Id": 1,
      "Prefix": "AA"
    },
    {
      "Id": 2,
      "Prefix": "BB"
    }
  ]
}

预期结果:

{
  "EventCodes": [
    {
      "EventCodePrefixId": 2,
      "EventCodePrefix": "BB"
    },
    {
      "EventCodePrefixId": 2,
      "EventCodePrefix": "BB"
    }
  ],
  "EventCodePrefixes": [
    {
      "Id": 1,
      "Prefix": "AA"
    },
    {
      "Id": 2,
      "Prefix": "BB"
    }
  ]
}

谢谢您的支持!
当前(错误)转换(如何将其更改为查找而不是采用索引0项?):

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "EventCodes": {
        "*": {
          "EventCodePrefix": "@(3,EventCodePrefixes[0].Prefix)"
        }
      }
    }
  }
]

当前(错误)结果:

{
  "EventCodes": [
    {
      "EventCodePrefixId": 2,
      "EventCodePrefix": "AA"
    },
    {
      "EventCodePrefixId": 2,
      "EventCodePrefix": "AA"
    }
  ],
  "EventCodePrefixes": [
    {
      "Id": 1,
      "Prefix": "AA"
    },
    {
      "Id": 2,
      "Prefix": "BB"
    }
  ]
}

谢谢您的支持!

bprjcwpo

bprjcwpo1#

下面的规范将为您工作。

[
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "EventCodePrefixes": {
        "@": "&",
        "*": {
          "*": "@1,Id.&"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "EventCodes": {
        "@": "&",
        "*": {
          "EventCodePrefixId": {
            "*": {
              "@4,&": {
                "Prefix": "&5[&4].EventCodePrefix"
              }
            }
          }
        }
      },
      "EventCodePrefixes": "&"
    }
  }
]

相关问题