我对Haskell相对较新,我目前正在评估Yesod作为REST服务的基础。我希望能够使用JSON编码数据进行通信。
我有一个使用Persistent
存储数据的类型类,它是ToJSON
和FromJSON
的一个实例。但是,我只能使用Yesod.Core.Json.parseJsonBody_
解码发送给处理程序的实例。
如何正确使用parseJsonBody
?我需要添加类型注释吗?如何从结果中提取解码后的实例?请注意,我对Haskell还不是很熟悉。
答案 0 :(得分:2)
我想,我需要添加一个正确的类型签名,以使parseJsonBody
识别我要解析的实例:
import qualified Data.Aeson as J
postTestR :: Handler Value
postTestR = do
newTest <- parseJsonBody :: Handler (J.Result Test)
case newTest of
J.Error s -> ...
J.Success a -> ...
当我查看parseJsonBody_
的来源以及它本身如何使用parseJsonBody
时,我理解了这个问题。