通过 Haskell 工作,我正在尝试学习如何序列化到 JSON 或从 JSON 序列化。
我正在使用 aeson-0.8.0.2 并且我被困在基本解码上。这是我所拥有的:
文件游乐场/aeson.hs:
{-# LANGUAGE OverloadedStrings #-}
import Data.Text
import Data.Aeson
data Person = Person
{ name :: Text
, age :: Int
} deriving Show
instance FromJSON Person where
parseJSON (Object v) = Person <$>
v .: "name" <*>
v .: "age"
parseJSON _ = mzero
main = do
let a = decode "{\"name\":\"Joe\",\"age\":12}" :: Maybe Person
print "aa"
ghc --make playground/aeson.hs 产量:
[1 of 1] 编译主程序(playground/aeson.hs,playground/aeson.o)
游乐场/aeson.hs:13:35:不在范围内:`'
游乐场/aeson.hs:14:40:不在范围内:`<*>'
游乐场/aeson.hs:17:28:不在范围内:`mzero'
- 知道我做错了什么吗?
- 为什么这里需要 OverloadedString?
- 另外,我不知道
<$>
,<*>
, ormzero
应该是什么意思;我会很感激有关在哪里可以阅读有关这些内容的提示。