Я следующий текст JSON и моей целью является найти, если какой-либо из «прямой» поле имеет значение «False» для meta.name = «имя1»разбора JSON с заводной Collect значений
я могу разобрать и получить список для «имя1», но не уверен, как идти дальше .. как собирать значения поля «прямой»! = истинным и проверить, если коллекция больше чем 0.
def list = new groovy.json.JsonSlurper().parseText(text)
println list.record.land.find{ it.meta.name == 'name1' }
{
"version": 1,
"record": {
"land": [
{
"meta": {
"name": "name1",
"type": "person"
},
"delete": {
"result": "allow",
"factor": {
"direct": true,
"rules": [
{
"rule1": "1002",
"uri": "/deeds/567576-ffgt-1002"
},
{
"rule1": "5012",
"uri": "/deeds/567576-dfge-5012"
}
]
}
},
"transfer": {
"result": "allow",
"factor": {
"direct": true,
"rules": [
{
"rule1": "1002",
"uri": "/deeds/567576-ffgt-1002"
},
{
"rule1": "5012",
"uri": "/deeds/567576-dfge-5012"
}
]
}
},
"move": {
"result": "allow",
"factor": {
"direct": false,
"rules": [
{
"rule1": "1002",
"uri": "/deeds/567576-ffgt-1002"
},
{
"rule1": "5012",
"uri": "/deeds/567576-dfge-5012"
}
]
}
}
}
]
}
}
Спасибо за быстрый ответ. – user3741611
мы можем сделать больше работы в закрытии findAll: 'def hasFalseDirect = list.record.land.findAll {it.meta.name ==" name1 "&& it.find {item -> item.value.factor ?. direct == false}} ' –
Если ключи в« отфильтрованном »списке являются динамическими (я имею в виду, может быть любая строка .. не предопределена, как« удалить »,« обновить »и т. д.), есть ли способ проверить все? – user3741611