Jolt 转换 JSON 列表规范 JSON 输入

Jolt Transform JSON Spec for List JSON Input

我正在尝试对输入的 JSON-list 进行 JOLT 移位转换 在我的输入下方:

[
  {
    "number": 1001,
    "description": "KA01"
  },
  {
    "number": 1002,
    "description": "KA02"
  }
]

我想创建这个输出:

{
  "actions" : [
    {
      "_type": "SetFieldValue",
      "fieldName": "UUID",
      "value": "uuid"
    },
    { "_type": "InsertRow" },
    {
      "_type": "SetFieldValue",
      "fieldName": "number",
      "value": "1001"
    },
    {
      "_type": "SetFieldValue",
      "fieldName": "description",
      "value": "KA01"
    },
    { "_type": "InsertRow" },
    {
      "_type": "SetFieldValue",
      "fieldName": "number",
      "value": "1002"
    },
    {
      "_type": "SetFieldValue",
      "fieldName": "description",
      "value": "KA02"
    },
    {
      "_type": "SetFieldValue",
      "fieldName": "start"
    }
  ]
}

我在 JOLT 转换方面做得不多,在这种情况下需要帮助。

首先你可以将JSON值按键名和键值分成几部分,然后添加_type属性作为默认值如

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "$": "&1.[&2].fieldName",
          "@": "&1.[&2].value"
        }
      },
      "#UUID": "x[#2].fieldName",
      "#uuid": "x[#2].value",
      "#start": "y[#2].fieldName"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": ""
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "*": {
        "_type": "SetFieldValue"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "@": ""
      },
      "#InsertRow": "_type"
    }
  },
  {
    "operation": "sort",
    "spec": {}
  }
]