しかしGroovyは書けば書くほど,便利で病みつきになる言語である.Groovy JDKも便利なものばかりで,おそらく通常のJavaコードを書くより効率は倍,コード量も半分以下になっていると感じる.
とりわけ便利であると思ったものをいくつか紹介していきたい.
一つ目はJsonSlurperとJsonBuilder.JSonSlurperは,名前の通りJsonオブジェクトをずずっとパースしてGroovyオブジェクトにアンマーシャルしてくれる.JsonSlurperは多くのparseオーバロード メソッドを提供しているので,JsonSlurperの為に入力データを加工する手間も省けることも多いだろう.
一方JsonBuilderはGroovyオブジェクトからJSONデータへのマーシャリング機能を提供している.
以下の例はJSONメッセージをアンマーシャル後,再びマーシャルする例.
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
jsonMsg = "{\n" +
" \"title\": \"The Latin Bit\",\n" +
" \"Label\": \"BlueNote\",\n" +
" \"Janre\": \"Jazz\",\n" +
" \"Leader\": [\n" +
" \"Grant Green\"\n" +
" ],\n" +
" \"Release\": 1962,\n" +
" \"TrackRecords\": [\n" +
" {\n" +
" \"All Tracks\": [\n" +
" \"Grant Green(g)\",\n" +
" \"John Acea(p)\",\n" +
" \"Wendell Marshall(b)\",\n" +
" \"Willie Bobo(ds)\",\n" +
" \"Carlos 'Patato' Valdes(conga)\",\n" +
" \"Garvin Masseaux(chekere)\"\n" +
" ]\n" +
" }\n" +
" ]}"
def parseJson( jsonData ) {
JsonSlurper json = new JsonSlurper()
return json.parseText( jsonData )
}
def buildJson( obj ) {
def builder = new JsonBuilder( obj )
return builder.toPrettyString()
}
// main
def parsed = parseJson( jsonMsg )
println( parsed )
assert parsed.title == "The Latin Bit"
assert parsed.Release == 1962
assert parsed.Leader[0] == "Grant Green"
assert parsed.TrackRecords["All Tracks"][0].indexOf( "John Acea(p)" ) != -1
println( buildJson( parsed ) )
0 件のコメント:
コメントを投稿