Kos*_*kov 8 api json haskell yesod
我正在尝试从Yesod的处理程序中编写一个最简单的JSON响应,但有一些非常愚蠢的错误(显然).我的处理程序代码如下:
-- HelloYesod/Handler/Echo.hs
module Handler.Echo where
import Data.Aeson (object, (.=))
import qualified Data.Aeson as J
import Data.Text (pack)
import Import
import Yesod.Core.Json (returnJson)
getEchoR :: String -> Handler RepJson
getEchoR theText = do
let json = object $ ["data" .= "val"]
return json
Run Code Online (Sandbox Code Playgroud)
错误是这样的:
Handler/Echo.hs:12:10:
Couldn't match expected type `RepJson' with actual type `Value'
In the first argument of `return', namely `json'
In a stmt of a 'do' block: return json
In the expression:
do { let json = object $ ...;
return json }
Build failure, pausing...
Run Code Online (Sandbox Code Playgroud)
小智 7
我也被这个被抓住了:你只需要更改你的类型签名就可以了:
getEchoR :: String -> Handler Value
Run Code Online (Sandbox Code Playgroud)
我的理解是整个Rep系统在Yesod 1.2中被弃用,因此Handler现在返回Html和Value而不是RepHtml和RepJson.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1383 次 |
| 最近记录: |