このシリーズの一覧はこちら
はじめに
JSONとGroovyのマップは非常に形式が似ている。
違っているのはJSONの方はマップに {} を利用するのに対して Groovyは を使う点くらいだ。
ということで、{} を することでJSONをGroovyObject*1に変換するクラスを書いてみた。
ソース
2010-10-14追記
GroovyのString(Groovy JDK)にいつの間にか#trメソッドが追加されてた - No Programming, No LifeにてStringにtrメソッドが追加されていることが確認できましたので、そちらを使うように修正しました。
しかしせっかく自分で書いたtrメソッドも勿体ないので載せておきます。
使ってみる
def text = ''' [ ["aaa", "bbb", "ccc"], { "key1" : "value1", "key2" : "value2", 'key3' : 'value3', 'key4' : '' }, ["ddd", "eee", "fff"] ] ''' def json = new JsonUtil(text) def gob = json.gob assert 'value2' == gob[1].key2
上記のように、gob[1].key2のような形でオブジェクトにアクセスが可能となる。
*1:便宜上GOBとでも呼ぶことにする。