-1

我正在使用 play 2.1.3,我有一个非常简单的应用程序,如下所示:

包控制器

import play.api.mvc._
import play.api.libs.json._
import play.api.libs.functional.syntax._
object App extends Controller {
  def sectors = Action(parse.tolerantJson) { request=>
    Ok(Json.obj("Name"->"Scala"))
  }  
}

我的路线定义如下:

GET     /sectors                    controllers.App.sectors

当然,当我删除 parse.operatorJson 应用程序工作时,在我的应用程序中我需要使用 parse.operatorJson 方法。

我在浏览器中收到以下错误:

Bad request
For request 'GET /sectors' [Invalid Json]
4

1 回答 1

4

tolerantJson是用于解析Request的解析器。

当您使用parse.jsonor定义您的操作时parse.tolerantJson,您说收到的请求必须包含 json 正文,并且必须使用 JSON 内容/类型发送。

在您的情况下,您只是在响应中发送Json (未在请求中接收 Json)。并且 play 尝试将 null 正文解析为 Json,所以你有那个错误。

Json 内容类型将自动添加到您的响应中(因为 Play 知道如何使用 呈现 Json Writable[JsValue]),因此您无事可做。

于 2013-09-03T10:14:31.047 回答