Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 如何基于输入REST为同一请求发送两种不同类型的JSON响应?_Java_Spring Mvc - Fatal编程技术网

Java 如何基于输入REST为同一请求发送两种不同类型的JSON响应?

Java 如何基于输入REST为同一请求发送两种不同类型的JSON响应?,java,spring-mvc,Java,Spring Mvc,我是RESTAPI开发新手,我没有使用maven,我只是使用eclipse来开发它 现在我得到了一个特别的回应,比如说 { "Status_cd":"1" "status":"succ" } 上面的响应应该是在成功的情况下,我希望像这样的错误响应 { "status_cd":"0" "error":{ "Error_cd":"2131" "Message":"unable to process" } } 如何编写我的序列化类以适应同一请求的这两种响应?在RES

我是RESTAPI开发新手,我没有使用maven,我只是使用eclipse来开发它

现在我得到了一个特别的回应,比如说

{
"Status_cd":"1"
"status":"succ"
}
上面的响应应该是在成功的情况下,我希望像这样的错误响应

{
"status_cd":"0"
"error":{
     "Error_cd":"2131"
     "Message":"unable to process"
      }
}

如何编写我的序列化类以适应同一请求的这两种响应?

在REST控制器中,设计endpoint方法,使其返回具有通配符参数化的对象

//Here your mapping annotation
public @ResponseBody ResponseEntity<?> getSuccessOrError() {

    //Body omitted
    //in case of success return new ResponseEntity(YourSuccessClass, HttpStatus)
    //in case of error return new ResponseEntity(YourErrorClass, HttpStatus)

}

或者,您可以设计响应类,使其同时包含staus和error字段,并仅使用所需的值进行初始化。

hi jakub我尝试使用getter和setter方法public List getError{return error;}public void setErrorList error创建两个单独的类文件{this.error=error;}public List getResponse{return response;}public void setResponseList response{this.response=response;}但我在这之后得到的响应类似于{error:null,response:[{status_cd:1,status:success}}}无论如何,谢谢你,我使用了jackson annotation@JSONIncludeINCLUDE.NON_NULL让我的东西正常工作