fastjson泛型序列化

1、需要序列化类

/**   
 * @Title: ReqIn.java 
 * @Package com.spring.pro.utils.fastjson 
 * @Description:  
 * @author ybwei  
 * @date 2018年10月8日 上午11:23:44 
 * @version V1.0   
 */
public class ReqIn<T> {

	private String token;
	private T data;
	
	public ReqIn(String token, T data) {
		super();
		this.token = token;
		this.data = data;
	}
	public ReqIn() {
		super();
	}
	public String getToken() {
		return token;
	}
	public void setToken(String token) {
		this.token = token;
	}
	public T getData() {
		return data;
	}
	public void setData(T data) {
		this.data = data;
	}
}

2、定义model

/**   
 * @Title: User.java 
 * @Package com.spring.pro.utils.fastjson 
 * @Description:  
 * @author ybwei  
 * @date 2018年10月8日 上午11:26:10 
 * @version V1.0   
 */
public class User {

	private String id;
	private int age;
	
	
	public User() {
		super();
	}
	public User(String id, int age) {
		super();
		this.id = id;
		this.age = age;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

3、测试

import java.lang.reflect.Type;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;

/**
 * @Title: GenericityTest.java
 * @Package com.spring.pro.utils.fastjson
 * @Description:
 * @author ybwei
 * @date 2018年10月8日 上午11:21:50
 * @version V1.0
 */
public class GenericityTest {
	private Logger logger = LoggerFactory.getLogger(getClass());

	@Test
	public void parseObject() {
		User user = new User("1", 12);
		ReqIn<User> req = new ReqIn<>("token", user);
		String str = JSON.toJSONString(req);
		logger.info("str:{}", str);
		
		Type type = new TypeReference<ReqIn<User>>() {}.getType();
		ReqIn<User> req2 = JSON.parseObject(str, type);
		logger.info("req2:{}",JSON.toJSONString(req2));
	}
}

猜你喜欢

转载自blog.csdn.net/xixingzhe2/article/details/82966171