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
),因此它适用于强制密钥(与 (.:?)
相反,这使得对可选的有意义)。
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
),因此它适用于强制密钥(与 (.:?)
相反,这使得对可选的有意义)。