Это вопрос о командной строке json процессор jq .Это не о javascript или jQuery или что-либо еще с js и qs в его имени: -)
У меня есть такие входные данные, как:
{ "id": "person1", "name": "wilma", "age": "quite old"}
{ "id": "person2", "name": "fred"}
{ "id": "person1", "name": "betty", "x": "extra"}
Я хочу выводвот так:
{
"person1": { "name": "betty", "age": "quite old", "x": "extra" },
"person2": { "name": "fred" }
}
Я пробовал разные вещи!
Например,
jq -s '.[] | { (.id) : . }' <data
дает
{ "person1": { "id": "person1", "name": "wilma", "age": "quite old" }}
{ "person2": { "id": "person2", "name": "fred" }}
{ "person1": { "id": "person1", "name": "betty", "x": "extra" }}
Что-то вроде этого,за исключением того, что он выводит поток объектов вместо одного.Мне нужно объединить все эти объекты вместе.
jqplay.org пример
Я также пытался использовать group_by(.id)[]|add
, который объединяет каждый элемент, но все равно приводит к потоку,https://jqplay.org/s/lh6QUQ0DO4