У меня есть JSON, включающий вложенные массивы для каждой вещи, которую я пытаюсь собрать.
Я здесь перегоню:
[
[
{
"Item":"FIRST",
"items":[
{
"firstitem1":"Item 1",
"firstitem2":"Item 2"
}
]
}
],
[
{
"Item":"SECOND",
"items":[
{
"seconditem1":"Second Item 1",
"seconditem2":"Second Item 2"
}
]
}
]
]
Желаемый результат будет выглядеть так:
{
"FirstItem1": "Item 1",
"SecondItem1": "Second Item 1"
}
Я могу вернуть каждый товар по отдельности, используя
.[0] | {FirstItem1: .[0].items[0].firstitem1}
.[1] | {seconditem: .[0].items[0].seconditem1}
Я обнаружил похожую проблему, которая объясняет, что вы можете объединять фильтры, используя что-то вроде filter + (filter):
Несколько фильтров с использованием JQ
Однако, хотя оба моих фильтра работают независимо, когда я объединяю их следующим образом:
.[0] | {FirstItem1: .[0].items[0].firstitem1} + (.[1] | {seconditem: .[0].items[0].seconditem1})
Я получаю «ноль» за мой второй ответ.
{
"FirstItem1": "Item 1",
"seconditem": null
}
Я уже несколько дней ломал голову над этим, есть идеи? Я был бы признателен, если бы мне пришлось атаковать это по-другому.
Вот ссылка на jqplay
https://jqplay.org/s/By94hv9gKj