У меня есть массив JSON, подобный этому:
[
{
"name": "Bo",
"type": "dog"
},
{
"name": "Roxer",
"type": "dog"
},
{
"name": "Paws",
"type": "cat"
}
]
Я пытаюсь преобразовать его в объект с ключом type
, например:
{
"dog": [
{
"name": "Bo",
"type": "dog"
},
{
"name": "Roxer",
"type": "dog"
}
],
"cat": [
{
"name": "Paws",
"type": "cat"
}
]
}
Я нашел этот ответ , который использует карту, но предполагает, что type
уникален и не преобразует его в массив:
reduce .[] as $i ({}; .[$i.type] = $i)
При первом добавлении значения, он должен быть вставлен как [$i]
. В любое другое время к нему следует добавить [] + $i
.