特定の 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 Gods に再帰的な使用方法を尋ねましたJsonSlurper
が、役立つものは何も見つかりませんでした。ここに何かアイデアはありますか?