下面的代码对我不起作用。任何人都可以解释如何解决并避免在Haskell中出现以下错误
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
module Test where
import GHC.Generics
import Data.Aeson.Types
import Data.Aeson
data Person = Person { personId :: Int , personName :: String} deriving (Show, Generic)
instance ToJSON Person where
toJson p = [
"id" .= personId p,
"name" .= personName p
]
instance FromJSON Person
我收到了以下错误。我无法在这里找出问题。
Prelude> :load src/User/Test
[1 of 1] Compiling Test ( src\User\Test.hs, interpreted )
src\User\Test.hs:13:5: error:
`toJson' is not a (visible) method of class `ToJSON'
Failed, modules loaded: none.
答案 0 :(得分:1)
方法的名称为toJSON
,而不是toJson
。标识符在Haskell中区分大小写。您可以在aeson
documentation for the ToJSON
class。