将MongoDB文档读入Haskell数据类型

时间:2017-08-12 20:06:24

标签: json mongodb haskell serialization

我的最终目标是从运行MongoDB查询的scotty端点返回JSON响应。到目前为止,我已经写下了查询,但它返回了一个文档,我想将该文档转换为我已定义的自定义类型。

这是我到目前为止的代码:

data User = User { username :: String } deriving (Show, Read)

getUsers :: Pipe -> IO [Document]
getUsers pipe = access pipe master "mydb" (find (select [] "users") >>= rest)

server :: Pipe -> ScottyM()
server pipe =
    get "/" $ do
        res <- liftIO $ getUsers pipe
        -- json $ T.pack $ show res

最后一行是我获取查询结果的地方,我想知道如何轻松地将Document数据转换为我在顶部声明的User类型。注释掉的行是我尝试某种序列化但不幸的是结果是无效的JSON。

0 个答案:

没有答案