【问题标题】:Add a key value after each JSON record在每条 JSON 记录之后添加一个键值
【发布时间】:2019-07-05 10:47:50
【问题描述】:

我有以下 JSON 代码,需要在每条记录的末尾添加键/值,如示例所示。我正在使用 JOLT 转换处理器进行 JSON 转换。

输入

[
  {
    "id": "id",
    "emp_name": "emp_name",
    "emp_dept": "emp_dept",
    "email": "email"
  },
  {
    "id": "1",
    "emp_name": "Jemimah",
    "emp_dept": "MacAiline",
    "email": "jmacailine0@huffingtonpost.com"
  },
  {
    "id": "2",
    "emp_name": "Dorene",
    "emp_dept": "Elden",
    "email": "delden1@live.com"
  },
  {
    "id": "3",
    "emp_name": "Gustave",
    "emp_dept": "Perott",
    "email": "gperott2@wufoo.com"
  }
]

预期输出:

[
  {
    "id": "id",
    "emp_name": "emp_name",
    "emp_dept": "emp_dept",
    "email": "email",
    "status": "status"
  },
  {
    "id": "1",
    "emp_name": "Jemimah",
    "emp_dept": "MacAiline",
    "email": "jmacailine0@huffingtonpost.com",
    "status": "NEW"
  },
  {
    "id": "2",
    "emp_name": "Dorene",
    "emp_dept": "Elden",
    "email": "delden1@live.com",
    "status": "NEW"
  },
  {
    "id": "3",
    "emp_name": "Gustave",
    "emp_dept": "Perott",
    "email": "gperott2@wufoo.com",
    "status": "NEW"
  }
]

非常感谢您的帮助。提前致谢。

【问题讨论】:

    标签: json apache-nifi jolt


    【解决方案1】:

    我想这会对你有所帮助,

    Nifi - How to add key:value to json

    【讨论】:

      【解决方案2】:

      一种选择是使用 shift 转换,例如

      [
        {
          "operation": "shift",
          "spec": {
            "*": {
              "@(0,id)": "[&].id",
              "*": "[&1].&",
              "id": {
                "id": {
                  "#status": "[&3].status"
                },
                "*": {
                  "#NEW": "[&3].status"
                }
              }
            }
          }
        }
      ]
      

      如果您只需要添加唯一的默认键值对"status": "NEW",那么通过使用modify-overwrite-beta 转换如

      [
        {
          "operation": "modify-overwrite-beta",
          "spec": {
            "*": {
              "status": "NEW"
            }
          }
        }
      ]
      

      【讨论】:

        【解决方案3】:

        您可以在规范中简单地使用 modify-overwrite-beta,如下所示

         [
          {
            "operation": "modify-overwrite-beta",
            "spec": {
              "*": {
                "status": "NEW"
              }
            }
          }
        ]
        

        【讨论】:

          猜你喜欢
          • 2021-10-01
          • 2015-07-10
          • 1970-01-01
          • 2017-11-04
          • 2014-09-05
          • 2017-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多