Рекурсивно извлекаемые значения полей 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 рекурсивно, но не смог найти ничего полезного. Есть идеи здесь?

Ответы на вопрос(1)

Ваш ответ на вопрос