У меня возникли проблемы с использованием jq для объединения нескольких объектов. В этом случае MY_OBJECTS — это поток объектов json с одним ключом каждый. Я объединяю их в один массив следующим образом:
$ echo ${MY_OBJECTS} | jq -s '.'
[
{
"Name1": [
{
"Item1": "Val1",
"Item2": "Val2"
}
]
},
{
"Name1": [
{
"Item1": "Val3",
"Item2": "Val4"
}
]
},
{
"Name2": [
{
"Item1": "Val5",
"Item2": "Val6"
}
]
},
{
"Name2": [
{
"Item1": "Val7",
"Item2": "Val8"
}
]
}
]
Я хотел бы объединить их в один объект, чтобы все объекты Item под одним именем были объединены в один массив. По сути, я хотел бы получить следующий вывод:
$ echo ${MY_OBJECTS} | jq -s <SOME_COMMAND>
{
"Name1": [
{
"Item1": "Val1",
"Item2": "Val2"
},
{
"Item1": "Val3",
"Item2": "Val4"
}
],
"Name2": [
{
"Item1": "Val5",
"Item2": "Val6"
},
{
"Item1": "Val7",
"Item2": "Val8"
}
]
}
Я ожидал, что echo ${MY_OBJECT} | jq -s add
сделает это, но это перезаписало каждый объект следующим вместо добавления массивов, чтобы они были все в одном массиве (как если бы объекты добавлялись вместо массивов). Другими словами, записи выглядели так:
"Name1": [
{
"Item1": "Val3",
"Item2": "Val4"
}
]
Пока я хотел, чтобы они выглядели так:
"Name1": [
{
"Item1": "Val1",
"Item2": "Val2"
},
{
"Item1": "Val3",
"Item2": "Val4"
}
]
Любой совет будет принят во внимание!