mit Sagen, dass ich ein JSON ByteString habe, das Objektiv verwenden so etwas wieeine Sammlung von Werten aus einem JSON ByteString Ersten linsen Aeson
{
messages: [
{...},
{...}
]
}
Ich mag sieht eine Liste/Vektor von Nachrichten, um aus es. Ich habe eine Funktion toMessage
, die eine Value
in eine Maybe Message
schalten kann.
Ich habe diese Komposition versucht key "messages" . values . to toMessage
(to
von Control.Lens.Getter
ist aber das Ergebnis ist Maybe Message
und es wird einfach Nothing
.
Derzeit mache ich das
msgsJson <- c ^? key "messages"
let msgs = toList $ mapMaybe message $ msgsJson ^.. values
(mapMaybe
von witherable
ist, toList
ist die Vector
in eine Liste zu konvertieren) aber ich würde gerne wissen, ob es eine Möglichkeit gibt, verschiedene Linsen zu komponieren, um eine einzige Linse zu bekommen, die tut s dies.
Hmm sein sollte, werde ich Ich muss es noch einmal versuchen. Schau, was ich beim ersten Mal falsch gemacht habe. –