Gson解析含有list集合的json字符串

it2022-05-05  132

json字符串样式: { “Data” : { “BatchNo” : “30922592”, “Result” : [ { “SKU” : “1703117944”, “Success” : 1, “Fail” : 1 }, { “SKU” : “1703117912”, “Success” : 1, “Fail” : 0 }, { “SKU” : “1703117913”, “Success” : 2, “Fail” : 1 } ] }, “Code” : “200”, “Meta” : “success” } 解析以上字符串,首先分析: 此json字符串 分为三层结构: 最外层为:“Data”,“Code”,“Meta” 第二层为“Data”下的“BatchNo”与List集合的 “Result” 第三层为: “SKU” , “Success”, “Fail” 那么,我们就需要建立三个类 类1: public class JsonBean { private Data data; private String code; private String meta; (get/set方法请自行添加) } 类2: public class Data{ private String BatchNo; private List result; (get/set方法请自行添加) } 类3: public class Result{ private String SKU; private String Success; private String Fail; (get/set方法请自行添加) }

主方法:

public static void main(String[] args) { String str = "Json字符串(上面已经给格式,就不在这里拼了)" Gson gson = new Gson(); //创建Gson对象 //将Json字符串转换为jsonBean 实体类 JsonBean jsonBean = gson.fromJson(str , JsonBean .class); //解析第一层的Json Data data = jsonBean .getData(); String code = jsonBean .getCode(); String meta = jsonBean.getMeta(); //解析第二层的Json String batchNo = data .getBatchNo(); List<Result> list= data.getResult(); //解析第三层的Json for(int i=0;i<list.size();i++){ Result result = new Result(); result.setSKU(list.get(i).getSKU()); result.setSuccess(list.get(i).getSuccess()); result.setFail(list.get(i).getFail()); } //此时含有三层的Json数据就已经解析完成了 }

最新回复(0)