颠簸转换嵌套数组和对象

时间:2020-06-25 17:15:41

标签: json jolt

我正在尝试为以下输入创建颠簸转换:

{
  "admin": [
    {
      "heading": "header1",
      "fields": [
        {
          "description": "Name",
          "value": "John"
        },
        {
          "description": "Foo",
          "value": "Bar"
        }
      ],
      "id": "123456"
    },
    {
      "heading": "header2",
      "fields": [
        {
          "description": "Name",
          "value": "Jane"
        },
        {
          "description": "Foo",
          "value": "Bar"
        }
      ],
      "id": "789123"
    }
  ]
}

具有所需的输出:

{
  "admin": 
    {
      "header1": 
        {
          "Name" : "John",
          "Foo": "Bar",
          "id": "123456"
        },

      "header2": 
        {
          "Name" : "Jane",
          "Foo": "Bar"
          "id": "789123"
        },
    }
}

我刚刚开始理解颠簸转换的基础,但是对于嵌套结构来说,这似乎有点复杂。

1 个答案:

答案 0 :(得分:1)

此规格可以满足您的要求

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "id": "admin.@(1,heading).id",
          "*": {
            "*": {
              "value": "admin.@(3,heading).@(1,description)"
            }
          }
        }
      }
    }
  }
]

此规范循环遍历fields数组,并将description字段与在上方查找具有该值的键的键匹配。