Рекурсивно извлекаемые значения полей JSON в Groovy
Мне нужно реализовать метод, который будет сканировать строку JSON для конкретногоtargetField
и либо вернуть значение этого поля (если оно существует), либоnull
(если это не так):
// Ex: extractFieldValue(/{ "fizz" : "buzz" }/, 'fizz') => 'buzz'
// Ex: extractFieldValue(/{ "fizz" : "buzz" }/, 'foo') => null
String extractFieldValue(String json, String targetField) {
// ...
}
Это решение должно быть рекурсивным и работать на любом уровне вложенности в (иерархической) строке JSON. Также это должно работать и для массивов JSON.
Моя лучшая попытка на данный момент:
String extractFieldValue(String json, String targetField) {
def slurper = new JsonSlurper()
def jsonMap = slurper.parseText(json)
jsonMap."${targetField}"
}
Это работает только для полей верхнего уровня (не вложенных) JSON. Я спросил богов Google, как использоватьJsonSlurper
рекурсивно, но не смог найти ничего полезного. Есть идеи здесь?