Допустим, у меня есть json объект:
{
"lotOfJson": [
{
"value": "someName",
"property": "name",
"children": [],
"constraints": {
"IsValidName": "name someName isn't valid"
}
},
{
"value": [
{
"id": "firstBadId"
},
{
"id": "secondBadId"
}
],
"property": "listOfIds",
"children": [
{
"value": {
"id": "firstBadId"
},
"property": "0",
"children": [
{
"value": "firstBadId",
"property": "id",
"children": [],
"constraints": {
"badIdError": "This Id is bad!"
}
}
]
},
{
"value": {
"id": "secondBadId"
},
"property": "1",
"children": [
{
"value": "secondBadId",
"property": "id",
"children": [],
"constraints": {
"badIdError": "This Id is bad"
}
}
]
}
]
}
]
}
Этот массив может иметь глубокое вложение JSON - нет способа узнать, насколько глубоко.
Всякий раз, когда есть блок, который выглядит так:
"value": "",
"property": "",
"children": [],
"constraints": {
"": ""
}
Я хочу извлечь значения для value
, property
и constraints
и сохранить их в массиве. Для моего "lotsOfJson"
примера выше это будет выглядеть так: ["someName", "name", "name SomeName isn't valid", "firstBadId, "id", "This Id is bad!", "secondBadId, "id", "This Id is bad!"]
Так что я извлекаю значение, свойство и ограничения только тогда, когда они параллельны, как в блоке справа выше.
Я мог бы агностически извлечь все value
, property
и constraints
, которые находятся в массиве JSON, например, с помощью итератора, но есть способ извлечь их только тогда, когда параллельная версия друг другу?