Index > json-lib のテスト, groovy
Sat, February 6, 2010

json-lib のテスト, groovy

couchdb のクライアント用コードをgroovyで書いていると、JSONを使いこなす 必要が生じたので作動確認用テストコードをメモ。

基本的には、http://json-lib.sourceforge.net/usage.html を見れば 使い方はわかると思いますが。

コード

ちょっとはまったのは、

が異なること。(以下のコードの テスト4 を参照)
それ以外は直感的に使える感じです。

import net.sf.json.*
import net.sf.json.groovy.*


// テスト1)

def obj = new JSONObject()
obj.put("JSON", "Hello")
obj.put("JSON2", "Hello, World!")
assert obj.toString() == '{"JSON":"Hello","JSON2":"Hello, World!"}'


// テスト2)

def array = new JSONArray()
array.add('hoge')
array.add('fuga')
array.add('bar')
assert array.toString() == '["hoge","fuga","bar"]'


// テスト3) 

obj.put('array',array)
assert obj.toString() == '{"JSON":"Hello","JSON2":"Hello, World!","array":["hoge","fuga","bar"]}'


// テスト4) 文字列から JSONObject を生成

JSONObject jsonObj = JSONObject.fromObject( obj.toString() )
assert jsonObj.toString() == '{"JSON":"Hello","JSON2":"Hello, World!","array":["hoge","fuga","bar"]}'

def jsonObjAsString = jsonObj as String
assert jsonObjAsString == '[JSON:Hello, JSON2:Hello, World!, array:[hoge, fuga, bar]]'


// テスト5) テスト4と同じ ただし JsonSlurper版

def jsonObj2 = new JsonSlurper().parseText( obj.toString() )
assert jsonObj2.toString() == '{"JSON":"Hello","JSON2":"Hello, World!","array":["hoge","fuga","bar"]}'
 Twitter
follow me on Twitter
 Categories