fastjson泛型序列化
阿新 • • 發佈:2018-11-05
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)); } }