Haskell 使用 (.:) 的 aeson ParseJSON 示例

Haskell aeson ParseJSON example using (.:)

Aeson包使用中有如下代码片段example:

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

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

parseJSON函数的类型是parseJSON :: Value -> Parser a。 我对这段代码有以下疑问:.: 函数是什么?从示例中我可能会说它的类型是 Object -> String -> Parser String,但是我在 hoogle/hackage 上找不到任何关于它的信息。如有任何帮助,我们将不胜感激!

它检索与键关联的值。如果密钥不存在,(.:) 会产生解析失败(通过 empty 来自 Alternative),因此它适用于强制密钥(与 (.:?) 相反,这使得对可选的有意义)。