No Programming, No Life

プログラミング関連の話題や雑記

GroovyでJSONを使おう

このシリーズの一覧はこちら

はじめに

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とでも呼ぶことにする。