JOLT 从多个同名数组中只获取一个数组

JOLT get only one array out of multiple arrays with the same name

你好,我有一个 JSON 嵌套数组,它有不同的 ID 和值,我只想要 first_id 和它的值,但我不确定如何,我只知道如何获得所有ID。见下文

我的JSON

{
  "rootid": "19718",
  "ids": [
    {
      "id": "first_id",
      "field2": "source",
      "value": "root_value"
    },
    {
      "id": "second_id",
      "field2": "source2",
      "value": "second_value"
    },
    {
      "id": "third_id",
      "field2": "source2",
      "value": "third_value"
    }
  ]
}

我的规格

[
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "ids": {
        "*": {
          "@value": "@id"
        }
      }
    }
  }
]

我得到的结果:

{
  "rootid" : "19718",
  "first_id" : "root_value",
  "second_id" : "second_value",
  "third_id" : "third_value"
}

我想得到的结果:

{
  "rootid" : "19718",
  "first_id" : "root_value",
}

您可以使用 "@ids[0]": "ids" 选择数组的第一个对象以确定索引为零的元素,然后添加另一个 shift 转换类似于当前方法如

[
  {
    "operation": "shift",
    "spec": {
      "rootid": "&",
      "@ids[0]": "ids"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "rootid": "&",
      "ids": {
        "@value": "@id"
      }
    }
  }
]