fastjson将复杂JSON串转成对象步骤


工具:

JSON生成实体类网站: 点击此处


一、示例JSON

{
"code":200,
 "data":{
   "records":[
     {
     "id":"1360547626449233", 
       "name":"父字段", 
       "stock":"2000",
       "children":[
         {
         "id":"1360547626449233",
           "name":"子项目",
           "stock":"2000"
         },{
         "id":"123456",
           "name":"子项目2",
           "stock":2000
         }
       
       ]
     }
   ],
   "place":"河南"
  }
}

二、使用步骤

1.使用工具将JSON串转成几个实体类

得到实体类代码如下:


package com.zheng.pojo;
public class JsonRootBean {
	private int code;
	private Data data;
	public void setCode(int code) {
		this.code = code;
	}
	public int getCode() {
		return code;
	}

	public void setData(Data data) {
		this.data = data;
	}

	public Data getData() {
		return data;
	}

	@Override
	public String toString() {
		return "JsonRootBean{" +
				"code=" + code +
				", data=" + data +
				'}';
	}
}

package com.zheng.pojo;
public class Data {

    private List<Records> records;
    private String place;
    public void setRecords(List<Records> records) {
         this.records = records;
     }
     public List<Records> getRecords() {
         return records;
     }

    public void setPlace(String place) {
         this.place = place;
     }
     public String getPlace() {
         return place;
     }

	@Override
	public String toString() {
		return "Data{" +
				"records=" + records +
				", place='" + place + '\'' +
				'}';
	}
}

package com.zheng.pojo;
public class Records {
    private String id;
    private String name;
    private int stock;
    private List<Children> children;
    public void setId(String id) {
         this.id = id;
     }
     public String getId() {
         return id;
     }
    public void setName(String name) {
         this.name = name;
     }
     public String getName() {
         return name;
     }
    public int getStock() {
        return stock;
    }
    public void setStock(int stock) {
        this.stock = stock;
    }
    public void setChildren(List<Children> children) {
         this.children = children;
     }
     public List<Children> getChildren() {
         return children;
     }
    @Override
    public String toString() {
        return "Records{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", stock=" + stock +
                ", children=" + children +
                '}';
    }
}

package com.zheng.pojo;
public class Children {
    private String id;
    private String name;
    private int stock;
    public void setId(String id) {
         this.id = id;
     }
     public String getId() {
         return id;
     }
    public void setName(String name) {
         this.name = name;
     }
     public String getName() {
         return name;
     }
    public int getStock() {
        return stock;
    }
    public void setStock(int stock) {
        this.stock = stock;
    }
	@Override
	public String toString() {
		return "Children{" +
				"id='" + id + '\'' +
				", name='" + name + '\'' +
				", stock=" + stock +
				'}';
	}
}

2.利用fastjson转成实体类

代码如下(示例):

package com.zheng.javaPractice;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.comicyu.pojo.JsonRootBean;
public class JsonPractice {
	/** https://www.bejson.com/json2javapojo/new/
	 * JSON串转Object练习
	 * 问题1.使用JSONObject.toJSONString时,对象属性部分缺失:
	 * 在使用IDE自动生成set get方法的时候,有些属性的首字母还是小写的,如getvPerson,这种形式toJSONString这个方法不认,导致一部分对象属性没有转化成json串。
	 */
	private static void jsonTansferObject() {
		String JsonStr = "{\n" +
				"\"code\":200,\n" +
				" \"data\":{\n" +
				"   \"records\":[\n" +
				"     {\n" +
				"     \"id\":\"1360547626449233\", \n" +
				"       \"name\":\"父字段\", \n" +
				"       \"stock\":2000,\n" +
				"       \"children\":[\n" +
				"         {\n" +
				"         \"id\":\"1360547626449233\",\n" +
				"           \"name\":\"子项目\",\n" +
				"           \"stock\":2000\n" +
				"         },{\n" +
				"         \"id\":\"123456\",\n" +
				"           \"name\":\"子项目2\",\n" +
				"           \"stock\":2000\n" +
				"         }\n" +
				"       \n" +
				"       ]\n" +
				"     }\n" +
				"   ],\n" +
				"   \"place\":\"河南\"\n" +
				"  }\n" +
				"}";
	//转换对象成功,字段名一定全部小写
		JsonRootBean bean = JSONObject.parseObject(JsonStr, JsonRootBean.class);
		String data = bean.getData().toString();
		System.out.println(bean.toString());
	}

	public static void main(String[] args) {
		JsonPractice.jsonTansferObject();
	}
}

执行结果:
在这里插入图片描述
正确输出


  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值