jsonda and json4s

0
kmizu @kmizu

json4s 対応はどうしようか…。lift-jsonと思いっきりかぶるわけだけど、んーむ。 #jsonda

2012-11-03 17:13:51
Kenji Yoshida @xuwei_k

@kmizu json4sは、だいたい現在はlift-jsonそのものだから、対応すること自体は簡単でしょうけど、今のところjson4s自体がそこまで使われていないので、メリットが微妙ですね・・・

2012-11-03 17:16:34
Kenji Yoshida @xuwei_k

@kmizu でもたとえば、jsondaがjson4sに対応することによって、他のjacksonとかに簡単に対応できるとかなるんでしょうかね? (jsondaの仕組みもjson4sの仕組みも完全にわかってないので、的外れなこと言ってるかもしれません)

2012-11-03 17:19:18
kmizu @kmizu

@xuwei_k よっぽど元のJSONライブラリ(のAST)が変てこりんな構造になってなければ対応できるように作ってる(途中)です。JsonDSLsというtraitがあって、そこにJsonValue等のabstract typeが定義してあります。

2012-11-03 17:28:16
Kenji Yoshida @xuwei_k

@kmizu じゃあある意味、jsondaも「内部に独自のAST持ってて、汎用的に他のjsonに変換できるようになっている」ってことは、jsondaは(一部だけですが)json4sがやりたいことと似たようなことを内部でやっているということですかね?

2012-11-03 17:30:40
kmizu @kmizu

@xuwei_k 各JSONライブラリ用に、JsonのASTを構築するためのロジックはJsondaDSLs traitを継承した具象クラスに書く感じです。JsondaDSLsを継承した側で、abstract typeへのマッピングがちゃんとできればうまくいくはず。

2012-11-03 17:30:55
kmizu @kmizu

@xuwei_k Jsondaの実装は、DynamicVariableによる動的スコープ+ Pimp My Library によるメソッド (:-, %, $)の追加による技巧くらいで、後はライブラリのJSON型がうまくマッピングできるかどうかがほとんど全てです。

2012-11-03 17:34:41
kmizu @kmizu

@xuwei_k json4s のページみた限り、概ねそう言っていいと思います。ただ、json4sの(というか元のlift-jsonの) JSON DSLがイケてなくて、そこが自分にとって重要な部分なので、j(cont) http://t.co/0553dqUj

2012-11-03 17:42:50
kmizu @kmizu

@xuwei_k ただ、開発中のはそういう感じですが、今のリリース版ではlift-jsonべったり(lift-jsonのJsonASTを作るのに特化している)です。

2012-11-03 17:44:14
kmizu @kmizu

https://t.co/P57F5CcO (正確にはlift-jsonのexample)のJson DSLみて思ったのが、「書きにくい」し「読みづらい」だった。objectがネストした場合に読みづらいのが個人的には一番気にくわなかった。

2012-11-03 17:49:11
kmizu @kmizu

lift-jsonの頃からあるmerging とか diffingや、各ライブラリ固有の機能は再実装したくないので、JsondaDSLs(trait)といくつかのJSONライブラリ用の実装だけ用意して、他の部分は各ライブラリの機能使ってやってください、という感じ。 #jsonda

2012-11-03 17:53:55