JOLT 删除嵌套 JSON 中的列表级别

JOLT remove list levels in nested JSON

我有 JSON 个文件,其中元素嵌入列表中,具有不必要的子级别。我需要用 JOLT 简化这个结构,但我不知道如何做。我查看了类似的问答,但没有找到足够相似的示例。

这是输入:

{
  "datasets": [{
    "datasetid": "id_of_1st_dataset",
    "metas": {
      "domain": "mydomain",
      "records_count": 120234,
      "keywords": ["foo", "bar"]
    },
    "fields": [
      {
        "name": "1st_field_of_1st_dataset",
        "type": "text"
      },
      {
        "name": "2nd_field_of_1st_dataset",
        "type": "int"
      }
    ]
    },
    {
      "datasetid": "id_of_2nd_dataset",
      "metas": {
        "domain": "mydomain",
        "records_count": 5402,
        "keywords": ["banana", "bar"]
      },
      "fields": [
        {
          "name": "1st_field_of_2nd_dataset",
          "type": "text"
        },
        {
          "name": "2nd_field_of_2nd_dataset",
          "type": "int"
        }
      ]
    }
  ]
}

以及所需的输出:

{
    "datasetid": "id_of_1st_dataset",
    "domain": "mydomain",
    "records_count": 120234,
    "keywords": ["foo", "bar"]
    "fields": [
      {
        "name": "1st_field_of_1st_dataset",
        "type": "text"
      },
      {
        "name": "2nd_field_of_1st_dataset",
        "type": "int"
      }
    ]
    },
 {
      "datasetid": "id_of_2nd_dataset",
        "domain": "mydomain",
        "records_count": 5402,
        "keywords": ["banana", "bar"]
      "fields": [
        {
          "name": "1st_field_of_2nd_dataset",
          "type": "text"
        },
        {
          "name": "2nd_field_of_2nd_dataset",
          "type": "int"
        }
      ]
    }

将此输入转换为此输出的正确 jolt 规格是多少?提前感谢您的关注和最诚挚的问候。

可以通过以下规范完成,

[
  {
    "operation": "shift",
    "spec": {
      "datasets": {
        "*": {
          "datasetid": "[&1].datasetid",
          "fields": "[&1].fields",
          "metas": {
            "*": {
              "@": "[&3].&"
            }
          }
        }
      }
    }
  }
]