在下面的代码中,当 Spring ResponseEntity 返回时,我得到一个带有 setter 名称而不是数据成员名称的 json。 当我将 setData 更改为 setResult 并将 getData 更改为 getResult 时。响应更改为结果。 不确定它属于哪个类别,java还是spring。标记两者。
POJO:
public class ResponseObject {
private Object result;
private String message;
public void prepareResponse(Object result,HttpStatus status,String message){
this.result=result;
this.httpStatus=status;
this.message=message;
}
public Object getData() {//gettername is data here
return result;
}
public void setData(Object result) {//settername is data here
this.result = result;
}
@Override
public String toString() {
return "ResponseObject [result=" + result + ", httpStatus="
+ httpStatus + ", message=" + message + "]";
}
Controller
@RequestMapping(value = "currentuser", method = RequestMethod.GET,produces="application/json")
public ResponseEntity<ResponseObject> getUserInfo(HttpServletRequest requestServlet,HttpServletResponse responseServlet, HttpSession session) {
String supervisor = null;
HashMap loginMap = new HashMap();
ResponseObject resObj = new ResponseObject();
try {
supervisor = SecurityContextHolder.getContext().getAuthentication().getName();
loginMap.put("userName", supervisor);
System.out.println("username >>>>" + loginMap);
if(supervisor.contains("anonymous")){
/*responseServlet.setStatus(responseServlet.SC_UNAUTHORIZED);*/
resObj.setHttpStatus(HttpStatus.UNAUTHORIZED);
}
resObj.setData(loginMap);
} catch (Exception exception) {
LogUtil.fatalException(CLASS_NAME, "createProjectScreen",
exception.getMessage() + " :::InputParams ==>", exception,
LOG_NAME);
resObj.setHttpStatus(HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<ResponseObject>(resObj,resObj.getHttpStatus());
}
回应:
{
httpStatus: "UNAUTHORIZED",
message: null,
data: {
userName: "anonymousUser"
}
}
最佳答案
以下作品
The default mechanism is to use implied name as per Bean convention – for getters and setters leave out "get" or "set", lower case first char – but this can be overridden by annotations (@JsonSetter/@JsonGetter for Jackson 1.0, alternatively @JsonProperty for Jackson 1.1).
关于java - 为什么响应实体返回带有 setter/getter 名称而不是数据成员名称的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28870755/