Aeson
HaskellでJSONを扱うLibrary
類似
命名の意味
(A note on naming: in Greek mythology, Aeson was the father of Jason.)
おしゃれかよmrsekut.icon
Interfaceがキレイでいいなーmrsekut.icon
わかりやすい
JSONとデータ型間の相互変換の方法は3種類
自前で変換する関数を定義する
最も柔軟だが、めんどい
Generic型クラスを用いた自動導出
楽
Template Haskellを用いた自動導出
Value型
Jsonを表す型
Object | Array | String | Number | Bool | Nullのような雰囲気のやつ
parseJSON :: Value -> Parser a
いやー、そうでもないかmrsekut.icon
toJSONの定義に.=を使って書く
toJSON :: a -> Value
.=は、.を無視すればrecordの値を更新するときの=っぽく見えないこともないmrsekut.icon
あとは、decode, encode関数で相互に変換できる
確かに↓の例見れば、めちゃくちゃ自明なものをわざわざ自前で書いているのはわかりやすいmrsekut.icon
ほとんど何も書かなくていい
hsのjsonについて