#json #jsonpath
#json #jsonpath
Вопрос:
Учитывая следующие входные данные
{
"foos": [
{
"id": "foo",
"bars": [
{
"id": "1",
"bars": []
},
{
"id": "2",
"bars": [
{
"id": "9",
"bars": []
},
{
"id": "8",
"bars": []
}
]
},
{
"id": "3",
"bars": []
}
]
}
]
}
Я хотел бы получить следующий вывод
[
"1",
"2",
"9",
"8",
"3"
]
Я приблизился к этому выражению jsonpath $.foos[:]..bars[:].id
, но оно изменяет порядок вещей и приводит к следующему выводу
[
"1",
"2",
"3",
"9",
"8"
]
Как вы можете видеть, вложенные элементы добавляются в конец вывода, но мне нужно, чтобы они были ниже родительского элемента.
Было бы здорово, если бы это было возможно с помощью одного выражения jsonpath, иначе мне придется написать рекурсивную функцию.
Редактировать: изменен идентификатор, потому что они могут быть фактически некоторым случайным числом / строкой
Ответ №1:
Просто измените, когда перейти к рекурсии $.foos[:].bars[:]..id
Дает
[
"1",
"2",
"9",
"8",
"3"
]