package com.alibaba.json.bvtVO; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Assert; import com.alibaba.fastjson.JSON; /** * 交易消息体 * */ public class DataTransaction2 implements Serializable { private static final long serialVersionUID = 1L; private Head head = new Head(); private Body body = new Body(); public DataTransaction2() { } /** * Head **/ class Head { private String appid; private String transcode; private String seqno; private User user = new User(); private Ret ret = new Ret(); public Head() { } class User { private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } /** * 处理结果 * */ class Ret { private String code; private String msg; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } } public String getAppid() { return appid; } public void setAppid(String appid) { this.appid = appid; } public String getTranscode() { return transcode; } public void setTranscode(String transcode) { this.transcode = transcode; } public String getSeqno() { return seqno; } public void setSeqno(String seqno) { this.seqno = seqno; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public Ret getRet() { return ret; } public void setRet(Ret ret) { this.ret = ret; } public void setRetCode(String code) { this.ret.code = code; } public void setRetMsg(String msg) { this.ret.msg = msg; } } /** * Body * */ @SuppressWarnings("rawtypes") class Body { private Param param = new Param(); private DataSet dataset = new DataSet(); public Body() { } /** * 参数 * */ class Param { private Limit limit = new Limit(); private Map<String, String> form = new HashMap<String, String>(); class Limit { private String start; private String size; private String total; public String getStart() { return start; } public void setStart(String start) { this.start = start; } public String getSize() { return size; } public void setSize(String size) { this.size = size; } public String getTotal() { return total; } public void setTotal(String total) { this.total = total; } } public Limit getLimit() { return limit; } public void setLimit(Limit limit) { this.limit = limit; } public Map<String, String> getForm() { return form; } public void setForm(Map<String, String> form) { this.form = form; } } /** * 数据集 * */ class DataSet { private String total; private List rows = new ArrayList(); public String getTotal() { return total; } public void setTotal(String total) { this.total = total; } public List getRows() { return rows; } public void setRows(List rows) { this.rows = rows; } } public Param getParam() { return param; } public void setParam(Param param) { this.param = param; } public DataSet getDataset() { return dataset; } public void setDataset(DataSet dataset) { this.dataset = dataset; } public void setDataset(String total, List rows) { DataSet ds = new DataSet(); ds.setTotal(total); ds.setRows(rows); this.dataset = ds; } } public Head getHead() { return head; } public Body getBody() { return body; } public void setHead(Head head) { this.head = head; } public void setBody(Body body) { this.body = body; } /** * 设置返回的消息信息 * */ public void setRetMsgCode(String code, String msg) { this.head.setRetCode(code); this.head.setRetMsg(msg); } public void setRetMsgCode(String code) { this.setRetMsgCode(code, null); } /** * 设置返回的结果集 **/ @SuppressWarnings("rawtypes") public void setDataSet(String total, List rows) { this.body.setDataset(total, rows); } public static DataTransaction2 fromJSON(String jsonString) { return JSON.parseObject(jsonString, DataTransaction2.class); } public String toJSON() { return JSON.toJSONString(this); } public static void main(String args[]) { String jsonString = "{'head' : {'appid':'epas','transcode' : '000000','seqno' : '111111111', 'user' : { 'id' : '00000'}, 'ret' : { 'code' : '1', 'msg' : 'txt'} }, 'body' : { param : { form:{ name : '111', sex : '1', address : 'street1', array : [ { id : '1', name : 'tom1' }, { id : '2', name : 'tom2' } ]}, limit : { start : 1, size : 25, total : 100} }, dataset : { total : 1000, rows : [ { id : 'id', name : 'name' }, { id : 'id', name : 'name' } ] } }}"; DataTransaction2 dt = DataTransaction2.fromJSON(jsonString); System.out.println(dt.toJSON()); DataTransaction2 dt1 = JSON.parseObject(dt.toJSON(), DataTransaction2.class); System.out.println(dt1.toJSON()); Assert.assertEquals(dt.toJSON(), dt1.toJSON()); System.out.println("================="); System.out.println(dt.toJSON()); dt.setRetMsgCode("-1", "错误"); dt.setDataSet("1000", new ArrayList<Map<String, Object>>()); System.out.println(dt.toJSON()); String text = dt.toJSON(); System.out.println(text); DataTransaction2 dt2 = JSON.parseObject(text, DataTransaction2.class); System.out.println(JSON.toJSONString(dt2)); Assert.assertEquals(dt.toJSON(), dt2.toJSON()); } }