Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用application/JSON类型响应响应无效的JSON请求_Java_Playframework_Playframework 2.2 - Fatal编程技术网

Java 使用application/JSON类型响应响应无效的JSON请求

Java 使用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

我正在使用Play framework 2.2.3。我想用一个JSON响应来响应无效的JSON请求,该JSON响应表示响应类型是无效的JSON

{"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 with
badRequest()
simple solutions很好,因为它们很好而且很简单:)或者您可以覆盖全局对象的某些方法,例如
onHandlerNotFound