使用JOLT将外部json键值放入嵌套json数组中的json中

时间:2017-04-19 05:49:26

标签: json apache-nifi jolt

我有一个像这样的Json

    {
      "id" : "1234",
      "name" : "something",
      "list" : [
                {
                 "A" : "Something"
                },
                {
                 "B" : "Something1"
                }
               ]
    }

我想要做的是将 ID 名称添加到列表中的JSON内容中 我已经经历了几个问题,而且无法找到有人做过这个问题的任何地方。

2 个答案:

答案 0 :(得分:4)

我相信以下Shift规范可行:

{
    "id|name": "&",
    "list": {
      "*": {
        "@(2,id)": "&2.[&1].id",
        "@(2,name)": "&2.[&1].name",
        "*": "&2.[&1].&"
      }
    }
}

使用您的样本数据,产生的输出是:

{
    "id": "1234",
    "name": "something",
    "list": [{
        "id": "1234",
        "name": "something",
        "A": "Something"
    }, {
        "id": "1234",
        "name": "something",
        "B": "Something1"
    }]
}

答案 1 :(得分:1)

此规范可以为您提供所需内容:

[
  {
    "operation": "shift",
    "spec": {
      "list": {
        "*": {
          "@(2,id)": "&2.[&1].id",
          "@(2,name)": "&2.[&1].name",
          "*": "&2.[&1].&"
        }
      }
    }
  }
]

根据您的输入,它提供以下输出:

{
  "list" : [ {
    "A" : "Something",
    "id" : "1234",
    "name" : "something"
  }, {
    "B" : "Something1",
    "id" : "1234",
    "name" : "something"
  } ]
}