преобразование вложенного объекта JSON - PullRequest
0 голосов
/ 10 октября 2018

У меня есть вложенный объект json, например, так:

{
  "results": {
    "category_a": {
      "types": {
        "type_a": {},
        "type_b": {},
        "type_c": {}
      }
    },
    "category_b": {
      "types": {
        "type_y": {},
        "type_z": {}
      }
    }
  }
}

, и я бы хотел раздавить его в более простой вложенный объект:

{
  "category_a": [
    "type_a",
    "type_b",
    "type_c"
  ],
  "category_b": [
    "type_y",
    "type_z"
  ]
}

Это то, что ядо сих пор, что близко к тому, что я хочу:

.results
| to_entries[]
| {
    (.key): [
      .value.types | keys[]
    ]
  }

за исключением того, что вывод ориентирован на строку, а не один объект:

{
  "category_a": [
    "type_a",
    "type_b",
    "type_c"
  ]
}
{
  "category_b": [
    "type_y",
    "type_z"
  ]
}

Как я могу объединить этидва объекта JSON в один?Нужно ли подходить к трансформации по-другому?

1 Ответ

0 голосов
/ 10 октября 2018

Работая со своей программой в качестве отправной точки, вы можете просто заключить отдельные объекты в квадратные скобки, а затем использовать add:

.results
| [to_entries[] | { (.key): [ .value.types | keys[] ] } ]
| add
...