【问题标题】:Jolt Transform JSON Spec for List JSON Input用于列表 JSON 输入的 Jolt 转换 JSON 规范
【发布时间】:2021-12-06 13:41:33
【问题描述】:

我正在尝试对输入的 JSON 列表进行 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 jolt


【解决方案1】:

首先你可以通过键名和值将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": {}
  }
]

【讨论】:

  • 这很有帮助。谢谢
  • 不客气@franzbauer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 2022-08-04
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多