我正在尝试使用aeson库进行json解析,我正在遵循文档。这是我现在的代码:
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
import Data.Aeson as Ae
import Data.Text as T
import qualified Data.ByteString.Lazy as BS
import GHC.Generics
data Episode = Episode { season :: Int
, epNum :: Int
} deriving (Show, Generic)
data Series = Series { title :: !T.Text
, curEpisode :: Episode
} deriving (Show, Generic)
instance FromJSON Episode
instance ToJSON Episode -- Warning here
instance FromJSON Main.Series
instance ToJSON Main.Series -- Warning here
问题是我得到了两个警告:
srcMain.hs:21:10: Warning:
No explicit implementation for
`toJSON'
In the instance declaration for `ToJSON Episode'
srcMain.hs:22:10: Warning:
No explicit implementation for
`toJSON'
In the instance declaration for `ToJSON Main.Series'
我不明白为什么会发生这种事。
编辑:GHC版本:7.10.2
aeson version: 0.10.0.0 (latest)
我可以通过这样做来解决警告:
instance FromJSON Episode
instance ToJSON Episode where
toJSON = genericToJSON defaultOptions
instance FromJSON Main.Series
instance ToJSON Main.Series where
toJSON = genericToJSON defaultOptions
我仍然不知道为什么有警告,但我看到github上已经有一个错误报告。