日々常々

ふつうのプログラマがあたりまえにしたいこと。

Javaソースコードリーディング 第3回

http://atnd.org/events/12420
JSONICソースコードリーディングに行って来ました。初参加な方が半数近く居らっしゃったのですが安心のダラダラ感。……次回はコードリーディングのガイドみたいなのを軽く入れてみたいとも思いました。

ちょっとだけ喋って来ました。資料はGoogleDocsに放り投げてます。若干崩れてます*1けど気にしない。
jsonicreading - Google スライド

JSONの説明は全員知ってたら流す、知らなかったら口頭説明と http://json.org への誘導予定だったんですが、既に知っている方が大半だった事に加え、後の id:tan_go238 さんとも被っていたので説明自体割愛しました。コードより json.org や RFC4627 読んだ時間のほうが長かったのに!
…となると、コード読む前の事前知識的に説明することは殆ど無かったんですよね。クラス図とか出しても何が判るでもないので、最後のページにまとめてる通りになっちゃう感じで。そんなわけで発表自体は10分程度で終了しちゃいました。
その後は id:tan_go238 さんの発表があり、終わった後は適当にリーディング。



今回はScalaとGroovyも交えて良い感じに何の会か判らない状態になってました。やはりこの辺りは向いてますね。かなり自然な形で扱える印象を受けました。Scala良いなーとか、相変わらずGroovyはGroovyだなーとか。

やってみた。せっかくなのでJsonBuilder(Groovy1.8以降)で。

import groovy.json.*

def value = [key1 : 'value1', key2 : 'value2', key3 : [1,2,3]]
println (new JsonBuilder(value)).toString()

結果

{"key1":"value1","key2":"value2","key3":[1,2,3]}

並べて比較

[key1 : 'value1', key2 : 'value2', key3 : [1,2,3]]
{"key1":"value1","key2":"value2","key3":[1,2,3]}

外側の括弧を中括弧にして、キーと文字列をダブルクォテーションに変えて、スペースを除去してるだけにしか見えませんね。これなら置換で出来るよ!

GroovyからJSONICを使う

https://gist.github.com/888124 で出来るみたいです。Mavenは1.2.0までしかあがってないけど、jar置いてパス通すでもできるはず。

*1:主にtabが消えてる