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

58 篇文章 0 订阅
9 篇文章 0 订阅
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()); } } } } 
                     
                    
                   
                  
                 
                
               
              
             
            
           
         
      
      
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值