Diciamo che ho un tipo Person
Aeson e lente con DeriveGeneric e makeLenses - nomi non si allineano
import GHC.Generics
import Data.Text
import Data.Aeson
import Control.Lens
data Person = Person {
_firstName :: Text,
_lastName :: Text,
_age :: Int
} deriving (Show, Generic)
e voglio derivare automaticamente Lenti e typeclasses JSON per esso
makeLenses ''Person
instance FromJSON Person
instance ToJSON Person
Funziona correttamente, tuttavia DeriveGeneric vede i miei nomi di campo con un trattino basso e si aspetta che il mio JSON sia formattato di conseguenza.
{ "_firstName": "James" ... etc} -- The underscore doesn't belong here.
Ovviamente ho potuto Rimuovere tale definizione data
stessa, ma poi makeLenses
non sarebbe in grado di derivare i getter e setter richieste.
Idealmente quello che voglio essere in grado di fare è qualcosa di simile
let person = decode blob
let name = person ^. firstName
cioè io voglio essere in grado di trarre le lenti e le istanze JSON con tutti i nomi dei campi allineando correttamente con i valori nella JSON- REST Api Sto consumando, senza dover scrivere molto standard.
Mi sembra una cosa così semplice che sento che mi manca qualcosa di ovvio?
Funziona perfettamente, grazie :) –