我有一个@restController类型 Controller ,当我访问请求的资源时,我得到一个json作为响应,问题是所有属性都出现在我看来,并且它不尊重我生成的构造函数。
但是,该类的所有属性总是出现在我面前:
{
"code":0,
"message":"ERROR",
"details":null
}
我希望答案是这样的:
{
"code":0,
"message":"ERROR"
}
感谢您的帮助
@RestController
@RequestMapping("/api")
public class WsController implements WsInterface{
@Override
@PostMapping("/add")
public Response add(@RequestBody Person person) {
Response r= =null;
if(person.getName().equals("A")){
r= new Response(1,"OK","Details of person");
}else{
r= new Response (0,"ERROR");
}
return r;
}
}
public class Response{
private int code;
private String message;
private String details;
public Response() {
}
public Response(int code, String message, String details) {
this.code = code;
this.message = message;
this.details = details;
}
public Response(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getDetails() {
return details;
}
public void setDetails(String details) {
this.details = details;
}
最佳答案
如果您想在具有 null 详细信息和不具有 null 详细信息的两种情况下使用相同的对象。您可以尝试相应配置json序列化。Spring默认使用Jackson,您可以直接配置对象映射器或使用注释@JsonInclude(Include.NOT_NULL)在模型类上仅包含 not null
值。
关于java - @ResponseBody,不尊重对象的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61784784/