0
特定のtargetField
の文字列をスキャンし、そのフィールドの値を返すか(存在しない場合)null
のメソッドを実装する必要があります:GroovyでJSONフィールドの値を再帰的に抽出する
// 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
の使い方を尋ねましたが、役に立つものは何も見つかりませんでした。ここにどんなアイデア?
何複数の一致か? –
JSONをマップにスラップしたときは、http://stackoverflow.com/questions/6185746/groovy-map-find-recursiveのようなものを使用できます。 –
良い点@tim_yates - 私は満足しています最初に見つかった値を取る。 – smeeb