spring是自己有这个功能的,maven项目中需要引入如下jar
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
/**
* @param user
* @return 是否登录成功
*/
@RequestMapping(value = "/login")
@ResponseBody
RespResult userLogin(User user, HttpSession httpsession) {
RespResult respResult = new RespResult();
if(userService.userlogin(user, httpsession)) {
respResult.setFlag(true);
}else {
respResult.setFlag(false);
}
return respResult;
}
package com.wxj233.bean;
import java.util.HashMap;
import java.util.Map;
/**
* 响应返回参数
* @version 0.0.1
* @since 2019/01/03
* @author wxj233
*
*/
public class RespResult {
/**
* 标志true/false
*/
private boolean flag;
/**
* 响应数据,若无响应数据则为null
*/
private Map<String,Object> data = new HashMap<>();
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public Map<String, Object> getData() {
return data;
}
public void setData(Map<String, Object> data) {
this.data = data;
}
}
响应结果为:{"flag":false,"data":{}}
作者建议不要使用entity直接响应,而使用RespResult这类javabean,否则容易造成hibernate常见的no session错误,即使用dto数据传输类来解决这个问题,作者上一篇文章讲了如何完成entity到dto的自动转换,有兴趣的同学可以参考。