Java 使用application/JSON类型响应响应无效的JSON请求
我正在使用Play framework 2.2.3。我想用一个JSON响应来响应无效的JSON请求,该JSON响应表示响应类型是无效的JSONJava 使用application/JSON类型响应响应无效的JSON请求,java,playframework,playframework-2.2,Java,Playframework,Playframework 2.2,我正在使用Play framework 2.2.3。我想用一个JSON响应来响应无效的JSON请求,该JSON响应表示响应类型是无效的JSON {"message": "invalid json"} 但Play默认发送html数据。我正在使用 @BodyParser.Of(BodyParser.Json.class) 控制器类中我的操作方法的注释。如何发送JSON响应而不是默认的html响应?自动播放我会根据返回数据的类型设置内容类型,因此使用有效的JSON对象,您不需要使用@BodyPar
{"message": "invalid json"}
但Play默认发送html数据。我正在使用
@BodyParser.Of(BodyParser.Json.class)
控制器类中我的操作方法的注释。如何发送JSON响应而不是默认的html响应?自动播放我会根据返回数据的类型设置内容类型,因此使用有效的JSON对象,您不需要使用
@BodyParser
,badRequest
将响应状态另外设置为400
public static Result someAction() {
ObjectNode answerObj = Json.newObject();
answerObj.put("message", "invalid json");
return badRequest(answerObj);
}
也许对你有帮助。非常感谢。我正在尝试获取请求中的JSON负载,作为
JsonNode JSON=request().body().asJson()代码>假设内容类型为application/json
。当内容类型
不是应用程序/json
时,我该如何处理这种情况?如果您确定body是一个类似json的字符串,您可以对其进行解析:JsonNode node=json.parse(request().body())
;但我还必须处理主体不是JSON的情况。它可以是html、xml等。在这些情况下,我想发送一条消息,说明只允许JSON内容类型。请提供帮助。使用try/catch块,然后,如果Json.parse()无法解析有效的Json stringCreate附加操作for GET方法并返回Json withbadRequest()
simple solutions很好,因为它们很好而且很简单:)或者您可以覆盖全局对象的某些方法,例如onHandlerNotFound