JSONを扱うことが非常に多くなってきました。
ただ、JSONを扱うといっても、
ドキュメントとしてJSONのサンプルを書いているだけで、
最後、Javaに直さなければならないことを考えると、
非常に無駄の多い作業だなと思うようになってきました。
そこでGroovy
ですよ!
DSLを書けばいいじゃんと考えるのが普通ですよね。
ただ、まあ、そうは言ったものの、
DSLを自作できるほどのスキルも無いので、
JSONをそのままPOJOファイルに変換・出力してくれるツールを
Groovy
で作れないか?と考えて見ました。
ただ(え、まだなんかあるの?)、POJOにするツールといっても、
JsonSlurper
すら使い方を知らない…orzというわけで、
JsonSlurper
を試しに使って見ることにしました。SampleJsonSlurper.groovy
import groovy.json.JsonSlurper
def json = $/
{
"getAt" : "2011/10/17",
"person" : {
"privateId" : 12345,
"name" : "hoge",
"age" : 24
},
"boss" : {
"privateId" : 0,
"name" : "Jorge",
"age" : 41
},
"depart" : "sales",
"income" : 60000,
"projects" : [
{
"id" : 123,
"name" : "Idea",
"income" : 300000
},
{
"id" : 123,
"name" : "Idea",
"income" : 300000
}
]
}
/$
def sluper = new JsonSlurper()
def object = sluper.parseText(json)
println object.getClass()
object.each {
println it.key
println it.value.getClass()
}
というわけで、ComplexタイプのJSONを作ってみて、それをパースしてみました。
出力結果は次のような感じです。
class java.util.HashMap
projects
class java.util.ArrayList
person
class java.util.HashMap
depart
class java.lang.String
income
class java.lang.Integer
getAt
class java.lang.String
boss
class java.util.HashMap
どうやら、
JsonSlurper
のparseText
は、HashMap
を返してくれて、各値にはそれぞれ、
String
とか、ArrayList
とかを返してくれているようですね。
というわけで、JSONからPOJOを作り出すのはなんとなくできそうな気がしてきました。
0 件のコメント:
コメントを投稿