Свести JSON с помощью JsonSlurper
Попытка чтения и преобразования файла JSON, в котором есть входной файл:
{
"id": “A9”,
"roles": [
{"title": “A”, “type”: “alpha” },
{"title": “B”, “type”: “beta” },
]
},
{
"id": “A10”,
"roles": [
{"title": “D”, “type”: “delta” },
]
},
Но требует преобразования для библиотеки, которая ожидает значения на том же уровне:
{
"roles": [
{"id": “A9”, "title": “A”, “type”: “alpha” },
{"id": “A9”, "title": “B”, “type”: “beta” },
]
},
{
"roles": [
{"id": “A10”, "title": “D”, “type”: “delta” },
]
},
Я могу прочитать ввод с помощью JsonSlurper, но застрял на том, как его денормализовать.
1 ответ
Решение
С этим data.json
(обратите внимание, что я должен был очистить запятые, поскольку JSON-анализатор Groovy их не принимает):
{
"records":[{
"id": "A9",
"roles": [
{"title": "A", "type": "alpha" },
{"title": "B", "type": "beta" }
]
},
{
"id": "A10",
"roles": [
{"title": "D", "type": "delta" }
]
}]
}
Вы можете сделать это следующим образом:
def parsed = new groovy.json.JsonSlurper().parse(new File("data.json"))
def records = parsed.records
records.each { record ->
record.roles.each { role ->
role.id = record.id
}
record.remove('id')
}