我正在尝试在我的 Haskell 代码中启动并运行一个简单的 Json 解析器,我遇到了 Data.Aeson 这似乎是解决我的问题的可行解决方案
我按照页面上的示例代码进行了一些小的修改,这就是我得到的:
{-#LANGUAGE OverloadedStrings #-}
import Data.Aeson
import Data.Text
import Control.Applicative
import Control.Monad
data Person =
Person { firstName :: Text
, lastName :: Text
, age :: Int
} deriving Show
instance FromJSON Person where
parseJSON (Object v) =
Person <$> v .: "f_name"
<*> v .: "l_name"
<*> v .: "age"
parseJSON _ = mzero
在 GHCi 中运行以下命令会导致标题中出现令人讨厌的消息:
decode "{\"f_name\":\"Haskell\", \"l_name\":\"Curry\",\"age\":114}" :: Maybe Person
那么,这里有人知道出了什么问题吗?我几乎完全按照编写的示例代码进行了操作,那么为什么它会失败?