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的自動轉換,有興趣的同學可以參考。