可以说我有以下结构:
import Data.JSON
import Data.List
data Lang = Lang { name :: String,
desc :: String }
derive Show Lang
instance ToJSON Lang where
toJSON Lang{name, desc} =
Struct [
assoc "name" name,
assoc "desc" desc
]
到目前为止,我可以将 Lang 实例转换为 JSON:
langEn = Lang { name = "en",
desc = "english" }
langEnJSON = toJSON langEn --- produces {"name" : "en", "desc" : "english"}
但我不知道如何实现相反的操作:
instance FromJSON Lang where
fromJSON (Struct fields) = ---
我首先阅读了文档,但恐怕fromJSON
在这种情况下我仍然不知道如何使用和使用模式匹配:(