Powiedzmy mam typ Person
ajzon i obiektywu z DeriveGeneric i makeLenses - nazwy nie kolejce
import GHC.Generics
import Data.Text
import Data.Aeson
import Control.Lens
data Person = Person {
_firstName :: Text,
_lastName :: Text,
_age :: Int
} deriving (Show, Generic)
I chcę automatycznie czerpać Obiektywy i typeclasses JSON za nim
makeLenses ''Person
instance FromJSON Person
instance ToJSON Person
Działa to poprawnie, jednak DeriveGeneric widzi moje nazwy pól jako mające podkreślenie i oczekuje, że mój JSON zostanie odpowiednio sformatowany.
{ "_firstName": "James" ... etc} -- The underscore doesn't belong here.
Oczywiście mogę usunąć podkreślenia z samej definicji data
, ale potem makeLenses
nie będzie w stanie czerpać wymaganych pobierające i ustawiające.
Idealnie co chcę, aby być w stanie zrobić, to coś takiego
let person = decode blob
let name = person ^. firstName
tj Chcę, aby móc czerpać soczewki i instancje JSON ze wszystkie nazwy pól w kolejce prawidłowo z wartościami w JSON- REST Api pochłaniam, bez konieczności pisania wielu szablonów.
Wydaje się to być tak proste, że czuję, że brakuje mi czegoś oczywistego?
Działa idealnie, dzięki :) –