ich einen Datentyp in JSON zu kodieren versuchen:Haskell - mit Aeson JSON Generierung gibt eine falsche Reihenfolge der Felder
{-# 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"}
Welche gibt:
λ: encode test
λ: "{\"Asia\":\"3\",\"Period\":\"2013\",\"Africa\":\"1\",\"Americas\":\"2\"}"
Ich verstehe nicht, warum die erzeugte JSON enthält die Felder nicht in der gleichen Reihenfolge wie mein Datentyp.
Ich erwarte die Ausgabe zu sein {period, Afrika, Nord- und Südamerika, Asien} und ich bin immer {Asien, Zeit, Afrika, Nord- und Südamerika)
Ich verstehe, dass Informationen über nebenbei, die Reihenfolge ist nicht wichtig aber ich bin neugierig, warum das passiert.
JSON hat keine ‚richtigen‘ Reihenfolge der Felder verwendet wird. edit: siehe die Antwort [hier] (http://stackoverflow.com/questions/3948206/json-order-mixed-up) – pdexter