使用Aeson

时间:2016-02-02 17:58:33

标签: haskell aeson

我正在尝试用Aeson解析JSON值,我没有问题(到目前为止)解析对象或数组,但我无法让Aeson解析只是字符串的JSON文档。

据我所知,由于RFC 7159值是合法的JSON文档,而且自从0.9.0.0(我使用的是0.9.0.1)以来Aeson支持它,所以它应该可以工作。例如,我正在包装一个API,它返回字符串作为其许多调用的顶级JSON文档,并且想要为那些静态类型安全性对这些字符串进行newtype:

newtype Bar = Bar String deriving (Eq, Show)
instance FromJSON Bar where
    parseJSON (String v) = pure (Bar $ T.unpack v)
    parseJSON _ = mzero

如果我尝试解码某些内容:

decode "JustSomeRandomString" :: Maybe Bar

我得到的只是Nothing作为回报。

任何想法我做错了什么?当然,我可以处理在没有Aeson的情况下将字符串作为JSON文档返回的API调用,但是希望保持统一!

1 个答案:

答案 0 :(得分:2)

尝试{{1}}