の不適切な順序を与え、私はJSONにデータ型をエンコードしようとしています:ハスケル - アイソーンでJSONを生成するフィールド
λ: encode test
λ: "{\"Asia\":\"3\",\"Period\":\"2013\",\"Africa\":\"1\",\"Americas\":\"2\"}"
を生成した理由を私は理解していない:与え
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
import Data.Aeson
data Trend = Trend
{ period :: String
, africa :: String
, americas :: String
, asia :: String
} deriving Show
instance ToJSON Trend where
toJSON Trend{..} =
object [ "Period" .= period
, "Africa" .= africa
, "Americas" .= americas
, "Asia" .= asia
]
test = Trend {period = "2013", africa = "1", americas = "2", asia = "3"}
JSONには、自分のデータ型と同じ順序のフィールドがありません。
私は出力が
私は全体の情報を渡すことで、順序は重要ではないことを理解{期間、アフリカ、アメリカ、アジア}と私は取得しています{アジア、期間、アフリカ、米州)であることを期待していますなぜこれが起こっているのか不思議です。
JSONを使用して価値があるフィールドのない「正しい」順序を持っていません。編集:回答を見る[ここ](http://stackoverflow.com/questions/3948206/json-order-mixed-up) – pdexter