私はデータを持っています。FromJSON/ToJSONは手動
私はまだFromJSON
とToJSON
またはそのような何かを持っていることができることながらMyData
に彼らは、実際のJSONオブジェクトに比べてわずかに異なると呼ばれているので、手動で1つのまたは2のフィールドを解析します。出来ますか?または、この場合、手動ですべてのフィールドを解析して、FromJSON
/ToJSON
を使用しないでください。
私はデータを持っています。FromJSON/ToJSONは手動
私はまだFromJSON
とToJSON
またはそのような何かを持っていることができることながらMyData
に彼らは、実際のJSONオブジェクトに比べてわずかに異なると呼ばれているので、手動で1つのまたは2のフィールドを解析します。出来ますか?または、この場合、手動ですべてのフィールドを解析して、FromJSON
/ToJSON
を使用しないでください。
テンプレートHaskell deriving abilities of aeson
を見てみましょう。フィールドの名前を変更するのに役立つオプションがあります。例えば、私は以下の宣言でcolour
にcolor
フィールドの名前を変更したいと言う:
data MyData = MyData { address :: String
, streetNumber :: Integer
, isApartment :: Bool
, color :: String
}
その後、代わりにGeneric
を導出する、私はその後、私のToJSON
とFromJSON
インスタンスが持つ以下の
{-# LANGUAGE TemplateHaskell #-}
import Data.Aeson.TH
data MyData = MyData { address :: String
, streetNumber :: Integer
, isApartment :: Bool
, color :: String
}
$(deriveJSON defaultOptions{
constructorTagModifier = \f -> if f == "color" then "colour" else f
} ''MyData)
を追加します適切な名前のフィールド。
関連性:[JSONの構文解析で予約されたキーワードを含むフィールド名](http://stackoverflow.com/questions/18410686/parse-json-with-fieldnames-that-contain-reserved-keywords) – duplode