2017-11-26 16 views
1

以下のコードは私にとっては機能しません。 Haskellで以下のようなエラーを回避し回避する方法を誰でも説明できます。Aesonライブラリを使用したHaskellのjsonキー変換へのカスタムレコード

{-# 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. 
+1

これは単純なタイプミスだと思うのですが、 'toJson'ではなく' toJSON'であるべきです。 – epsilonhalbe

+1

ありがとう。私はそれに気付かなかった。しかし、このエラーはとても混乱しています。 OOPから来た私は、「見えない」とは、メソッドがモジュールから露出していないことを意味すると考えました。 – yantrakaar

答えて

関連する問題