しかし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 件のコメント:
コメントを投稿