2015-08-01 1 views
1

Il est l'extrait de code suivant dans l'utilisation du package Aeson example:Haskell Aeson exemple parseJSON en utilisant (:)

data Coord = Coord { x :: Double, y :: Double } 

instance FromJSON Coord where 
    parseJSON (Object v) = Coord <$> 
         v .: "x" <*> 
         v .: "y" 

Le type de fonction est parseJSONparseJSON :: Value -> Parser a. J'ai la question suivante à propos de ce code: quelle est la fonction .:? De l'exemple je pourrais dire que son type est Object -> String -> Parser String, mais je ne peux rien trouver à ce sujet sur hoogle/hackage. Toute aide serait appréciée!

+2

L '[index] (https://hackage.haskell.org/package/aeson-0.9.0.1/docs/doc-index.html) lié en haut des pages de documentation aide souvent dans de tels cas. – duplode

+0

@duplode Merci beaucoup, cela répond essentiellement à la question. – Mikhail

Répondre

2

Récupère la valeur associée à la clé. (.:) produit une erreur d'analyse (via empty de Alternative) si la clé n'est pas là, elle est donc appropriée pour les clés obligatoires (par opposition à (.:?), ce qui est logique pour les facultatifs).