fastjson 复杂json 序列化、反序列化

来源:互联网 发布:淘宝个体工商户 编辑:程序博客网 时间:2024/06/14 08:10
package com.jsonobj;import java.util.ArrayList;import java.util.Date;import java.util.List;public class A {private Integer id;private Long number;private Boolean checked;private String name;private Date create_time;private B b;private C c;private List b_list;private List c_list;public void addB(B b) {if (b_list == null) {b_list = new ArrayList();}b_list.add(b);}public void addC(C c) {if (this.c_list == null) {this.c_list = new ArrayList();}c_list.add(c);}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Long getNumber() {return number;}public void setNumber(Long number) {this.number = number;}public Boolean getChecked() {return checked;}public void setChecked(Boolean checked) {this.checked = checked;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getCreate_time() {return create_time;}public void setCreate_time(Date create_time) {this.create_time = create_time;}public B getB() {return b;}public void setB(B b) {this.b = b;}public C getC() {return c;}public void setC(C c) {this.c = c;}public List getB_list() {return b_list;}public void setB_list(List b_list) {this.b_list = b_list;}public List getC_list() {return c_list;}public void setC_list(List c_list) {this.c_list = c_list;}}package com.jsonobj;import java.util.ArrayList;import java.util.Date;import java.util.List;public class B {private Integer id;private Long number;private Boolean checked;private String name;private Date create_time;private List c_list;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Long getNumber() {return number;}public void setNumber(Long number) {this.number = number;}public Boolean getChecked() {return checked;}public void setChecked(Boolean checked) {this.checked = checked;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getCreate_time() {return create_time;}public void setCreate_time(Date create_time) {this.create_time = create_time;}public List getC_list() {return c_list;}public void setC_list(List c_list) {this.c_list = c_list;}public void addC(C c) {if (this.c_list == null) {this.c_list = new ArrayList();}c_list.add(c);}}package com.jsonobj;import java.util.Date;import java.util.List;import java.util.Map;public class C {private Integer id;private Long number;private Boolean checked;private String name;private Date create_time;private Map> m_list;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Long getNumber() {return number;}public void setNumber(Long number) {this.number = number;}public Boolean getChecked() {return checked;}public void setChecked(Boolean checked) {this.checked = checked;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getCreate_time() {return create_time;}public void setCreate_time(Date create_time) {this.create_time = create_time;}public Map> getM_list() {return m_list;}public void setM_list(Map> m_list) {this.m_list = m_list;}}/**    * @Title: JsonTest.java  * @Package com.jsonobj  * @Description: TODO(用一句话描述该文件做什么)  * @author Aaron·Li    * @date 2017年5月22日 下午2:45:24  * @version V1.0    */package com.jsonobj;import java.util.ArrayList;import java.util.Date;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;/** * @author Aaron·Li * @date 2017年5月22日 下午2:45:24 */public class JsonTest {/** * @param args */public static void main(String[] args) {A a = new A();a.setId(1);a.setName("A");a.setNumber(2L);a.setChecked(false);a.setCreate_time(new Date());B b = new B();b.setId(2);b.setName("B");b.setNumber(3L);b.setChecked(false);b.setCreate_time(new Date());C c = new C();a.setB(b);a.setC(c);for (int i = 0; i < 1; i++) {C cc = new C();cc.setId(i + 2);cc.setName("C" + i);cc.setNumber(3L + i);cc.setChecked(false);cc.setCreate_time(new Date());Map> m=new LinkedHashMap<>();List cList=new ArrayList<>();C cccc = new C();cccc.setId(i + 22);cccc.setName("CC" + i);cccc.setNumber(3L + i);cccc.setChecked(false);cccc.setCreate_time(new Date());cList.add(cccc);m.put("m"+i, cList);cc.setM_list(m);b.addC(cc);B bb = new B();bb.setId(i + 1);bb.setName("B" + i);bb.setNumber(3L + i);bb.setChecked(false);bb.setCreate_time(new Date());a.addB(bb);a.addC(cc);}String jsonA = JSON.toJSONString(a, SerializerFeature.WRITE_MAP_NULL_FEATURES, SerializerFeature.DisableCircularReferenceDetect);System.err.println(jsonA);//jsonA = "{\"b\":{\"c_list\":[],\"checked\":false,\"test\":null,\"create_time\":1495438825978,\"id\":2,\"name\":\"B\",\"number\":3},\"b_list\":[{\"c_list\":null,\"checked\":false,\"create_time\":1495438825978,\"id\":1,\"name\":\"B0\",\"number\":3}],\"c\":{\"checked\":null,\"create_time\":null,\"id\":null,\"name\":null,\"number\":null},\"c_list\":[{\"checked\":false,\"create_time\":1495438825978,\"id\":2,\"name\":\"C0\",\"number\":3}],\"checked\":false,\"create_time\":1495438825977,\"id\":1,\"name\":\"A\",\"number\":2}";A a2 = new A();a2 = JSON.parseObject(jsonA, A.class);System.out.println(a2);if (a2.getB() != null && a2.getB().getC_list() != null) {for (int i = 0; i < a2.getB().getC_list().size(); i++) {C ccc = a2.getB().getC_list().get(i);System.out.println(ccc.getNumber());}}}}
阅读全文
0 0
原创粉丝点击