我正在try 创建NIFI Jolt转换,其中我希望通过原始集合中的键从另一个JSON集合中附加一些值(通过EventCodes中引用的EventCodePrefix ID从EventCodePrefix中分配前缀):

请求样本:

{
  "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"
    }
  ]
}

谢谢!

推荐答案

以下规范将适用于您.

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

enter image description here

Json相关问答推荐

JOLT将对象名作为新属性添加到主体中

使用Jolt将字符串数组转换为JSON对象数组

盒子图显示不正确

ArcGIS json到Geojson的变换

如何使用 JOLT 使用输入数组中的值和层次 struct 中的其他字段创建数组

jq 对特定键进行过滤并将值整理到单个 csv 单元格中

转换为Json时忽略内部对象中的数组

如何使用 jq 在连续的 json 记录流上调用操作

jolt 通配符如何用于 RHS?

提交后使用 Rails 7 结合 JSON 标签进行标记

如何将西里尔字母转换为 utf16

杰克逊 2.0 和 Spring 3.1

为什么在测试 RSPEC 时 JBuilder 不返回 JSON 中的响应正文

如何自动修复无效的 JSON 字符串?

alert Json 对象

Retrofit2.0 得到 MalformedJsonException 而 json 似乎正确?

在 React 中访问子级的父级状态

将 json 转换为 C# 数组?

使用 C# 调用 json

如何使用 Gson 将 JSONArray 转换为 List?