Манипулировать списком JSON в список JSON с помощью JOLT - PullRequest
0 голосов
/ 10 июня 2019

У меня есть входной список JSON, как показано ниже:

[
  {
    "key_id": "1111",
    "key_1": "value_1",
    "key_2": true,
    "key_3": {
      "key_3_1": "value_3_1",
      "key_3_2": "value_3_2"
    }
  },
  {
    "key_id": "2222",
    "key_1": "value_1",
    "key_2": true,
    "key_3": {
      "key_3_1": "value_3_1",
      "key_3_2": "value_3_2"
    }
  }
]

Мне нужно преобразовать этот список, как показано ниже:

[
  {
    "id": "1111",               // Extract from key_id
    "data": {                   // complete json goes here within 'data'
      "key_id": "1111",
      "key_1": "value_1",
      "key_2": true,
      "key_3": {
        "key_3_1": "value_3_1",
        "key_3_2": "value_3_2"
      }
    }
  },
  {
    "id": "2222",
    "data": {
      "key_id": "2222",
      "key_1": "value_1",
      "key_2": true,
      "key_3": {
        "key_3_1": "value_3_1",
        "key_3_2": "value_3_2"
      }
    }
  }
]

Каждый внутренний список json должен быть преобразован в другой json с полями id и data . data поле должно содержать весь json, а id должно быть key_id .

1 Ответ

1 голос
/ 11 июня 2019

Эта спецификация должна дать вам ожидаемый результат:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "key_id": "[&1].id",
        "@": "[&1].data"
      }
    }
  }
]
...