spring mvc响应时自动将javabean转化为json数据格式

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的自动转换,有兴趣的同学可以参考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章