Haskell 使用aeson管道解析JSON流
给出一个简单的JSON类型示例:Haskell 使用aeson管道解析JSON流,haskell,haskell-pipes,Haskell,Haskell Pipes,给出一个简单的JSON类型示例: data Test = Test { name :: Text , age :: Int } deriving (Show, Generic) instance FromJSON Test 如何使用pipes aeson使用decoded镜头解码来自套接字的JSON消息流?作为一个示例,我只想在解析它们时将它们打印出来: main = connect "127.0.0.1" "8000" $ \(socket, _) -> $ runEf
data Test = Test
{ name :: Text
, age :: Int
} deriving (Show, Generic)
instance FromJSON Test
如何使用pipes aeson使用decoded
镜头解码来自套接字的JSON消息流?作为一个示例,我只想在解析它们时将它们打印出来:
main = connect "127.0.0.1" "8000" $ \(socket, _) -> $ runEffect $
some use of zoom decoded? view decoded? >-> P.print
(来自Pipes.Aeson.Unchecked
)是一个镜头,它将原始字节的生产者转换为JSON中解析的值的生产者
因此,我们必须首先使用pipes network
包中的函数从套接字中创建字节的生产者。大概是这样的:
-- to help with type inference
printTest :: (MonadIO m) => Consumer' Test m r
printTest = P.print
main = do
connect "127.0.0.1" "8000" $ \(socket, _) -> $ runEffect $
view decoded (fromSocket socket 4096) >-> printTest
return ()
(来自Pipes.Aeson.Unchecked
)是一个镜头,它将原始字节的生产者转换为JSON中解析的值的生产者
因此,我们必须首先使用pipes network
包中的函数从套接字中创建字节的生产者。大概是这样的:
-- to help with type inference
printTest :: (MonadIO m) => Consumer' Test m r
printTest = P.print
main = do
connect "127.0.0.1" "8000" $ \(socket, _) -> $ runEffect $
view decoded (fromSocket socket 4096) >-> printTest
return ()
(来自Pipes.Aeson.Unchecked
)是一个镜头,它将原始字节的生产者转换为JSON中解析的值的生产者
因此,我们必须首先使用pipes network
包中的函数从套接字中创建字节的生产者。大概是这样的:
-- to help with type inference
printTest :: (MonadIO m) => Consumer' Test m r
printTest = P.print
main = do
connect "127.0.0.1" "8000" $ \(socket, _) -> $ runEffect $
view decoded (fromSocket socket 4096) >-> printTest
return ()
(来自Pipes.Aeson.Unchecked
)是一个镜头,它将原始字节的生产者转换为JSON中解析的值的生产者
因此,我们必须首先使用pipes network
包中的函数从套接字中创建字节的生产者。大概是这样的:
-- to help with type inference
printTest :: (MonadIO m) => Consumer' Test m r
printTest = P.print
main = do
connect "127.0.0.1" "8000" $ \(socket, _) -> $ runEffect $
view decoded (fromSocket socket 4096) >-> printTest
return ()
这应该是插座4096的?这应该是插座4096的这应该是插座4096的这应该是插座4096的这应该是插座4096的这应该是插座4096的这应该是?