jsonToRepJson是否被破坏?
问题描述:
我刚刚开始做一些Yesod + Haskell的东西。 是jsonToRepJson破或什么的?jsonToRepJson是否被破坏?
我在下面做了这段代码,但是我总是在jsonToRepJson部分出错。 它似乎没有得到预期的类型?
任何帮助将是巨大的!感谢:3
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
import Yesod
import Data.Text
data APP = APP
instance Yesod APP
mkYesod "APP" [parseRoutes|
/TestR GET
|]
getTestR :: Handler RepJson
getTestR = jsonToRepJson $ object ["test".= ("test"::Text)]
main::IO()
main = warpDebug 3001 APP
这是我所得到的,当我使用runhaskell
api.hs:18:12:
Couldn't match expected type `RepJson' with actual type `Value'
Expected type: Handler RepJson
Actual type: HandlerT APP IO Value
In the expression:
jsonToRepJson $ object ["test" .= ("test" :: Text)]
In an equation for `getTestR':
getTestR = jsonToRepJson $ object ["test" .= ("test" :: Text)]
答
我所做的是,我用TypeContent
处理程序的变化。 如果我正确理解了我读的内容,repSelect
允许我们轻松处理客户请求的数据表示类型。
它读取请求头并检查它是否请求JSON,然后它会吐出JSON数据,如果它需要HTML,它会给出HTML页面。假设您自己已经使用providRep
添加了所需的特定数据。
这是我的代码。
mkYesod "APP" [parseRoutes|
/TestR GET
|]
getTestR::Handler TypedContent
getTestR = do
selectRep $ do
provideRep $ jsonToRepJson $ object $ (["test" .= ("test"::Text)])
main::IO()
main = warpDebug 3001 APP
答
+0
谢谢,我试过那个,但它没有为我工作。我确实阅读过博客文章,对我有很大的帮助。我会发布我的答案。 :) –
您的'在这里是多余的,最后一个应用程序运算符($)也是多余的,您不应该再使用jsonToRepJson,因为它已被弃用;-) –