Java中Json字符串转换为对象的方法(多层List集合)

时间:2023-03-08 21:35:04

借鉴自:http://www.jb51.net/article/91142.htm

在将json字符串转换成对象flightInfo时,当flightInfo对象中有List<flightClassInfo>类型的字段时,使用阿里巴巴的JSON.parse(jsonString, FlightInfo.class)时,其内部的list<flightClassInfo>没有转换成功,而是转换成HashMap结构。因此使用JSONObject对象;

1.maven依赖

       <dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>

2.java代码

         try{
JSONObject jsonObject = JSONObject.fromObject(jsonFlight);
Map<String,Class> map = new HashMap<String,Class>();
map.put("bingoClassInfoList", FlightClassInfo.class);
FlightInfo flightInfo = (FlightInfo) JSONObject.toBean(jsonObject, FlightInfo.class, map);
List<FlightInfo> flights = new ArrayList<FlightInfo>();
flights.add(flightInfo);
filterCharterFlight(flights);
System.out.println(flights.toString());
}catch (Exception e){
e.printStackTrace();
}

其中FlightInfo类如下:

 import java.io.Serializable;
import java.util.List; public class FlightInfo implements Serializable { private static final long serialVersionUID = 8604216922911620556L;
/**
* 航班信息属性
*/
public String airways; public String airwaysCn; public String arrAirdrome; public String arrCity; public String arrCityCn; public String arrDate; public String arrTerminal; public String arrTime; public boolean asr; public String carrier; public String carrierCn; public long childfee; public List<FlightClassInfo> bingoClassInfoList;
。。。。。

FlightClassInfo类对象如下:

 import java.io.Serializable;
import java.util.List; public class FlightClassInfo implements Serializable { private static final long serialVersionUID = 2932213372331900441L; public String c; public double agentFee; public double agentFeeGo; public long avItemTax; public String basicCabinRef; public long childOilTax; public long childPrice; public String childfarebasis; public String classNo; public String classNoCn;
。。。。。。

json字符串如下

String jsonFlight = "{\n" +
"\t\"oldminPrice\": 0,\n" +
"\t\"depTerminal\": \"T3\",\n" +
"\t\"minDiscount\": 0,\n" +
"\t\"earningLevel\": 0,\n" +
"\t\"asr\": false,\n" +
"\t\"sourceId\": \"661726\",\n" +
"\t\"arrCity\": \"HFE\",\n" +
"\t\"childfee\": 0,\n" +
"\t\"flightNo\": \"ZH9899\",\n" +
"\t\"planeStyle\": \"320\",\n" +
"\t\"arrTime\": \"0025\",\n" +
"\t\"codeShare\": false,\n" +
"\t\"arrDate\": \"2018-02-05\",\n" +
"\t\"depTime\": \"2215\",\n" +
"\t\"depDate\": \"2018-02-04\",\n" +
"\t\"isStop\": \"0\",\n" +
"\t\"airways\": \"ZH\",\n" +
"\t\"depAirdrome\": \"宝安机场\",\n" +
"\t\"depCity\": \"SZX\",\n" +
"\t\"exsitsActivity\": false,\n" +
"\t\"fee\": 0,\n" +
"\t\"tax\": 50,\n" +
"\t\"arrAirdrome\": \"新桥机场\",\n" +
"\t\"originalMinPrice\": 0,\n" +
"\t\"arrTerminal\": \"机场\",\n" +
"\t\"fullPrice\": 1240,\n" +
"\t\"bingoClassInfoList\": [{\n" +
"\t\t\"airCompanyFlag\": true,\n" +
"\t\t\"activityId\": 0,\n" +
"\t\t\"infantVenderPrice\": 0,\n" +
"\t\t\"policyId\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQSp/WJesbrOPuaxFl82q79w==\",\n" +
"\t\t\"rfId\": 0,\n" +
"\t\t\"netChildPrice\": 0,\n" +
"\t\t\"agentFee\": 0.0,\n" +
"\t\t\"promotionReducePrice\": 0,\n" +
"\t\t\"fareItemId\": \"jdselfbspZHZH98992018-02-04F\",\n" +
"\t\t\"discount\": 250,\n" +
"\t\t\"fee\": 0,\n" +
"\t\t\"subsidy\": 0,\n" +
"\t\t\"childSeatCode\": \"F\",\n" +
"\t\t\"price\": 0,\n" +
"\t\t\"originalPrice\": 3100,\n" +
"\t\t\"infantSalePrice\": 0,\n" +
"\t\t\"newMinPrice\": 0,\n" +
"\t\t\"oilTax\": 0,\n" +
"\t\t\"classLevel\": \"F\",\n" +
"\t\t\"zvItemId\": 0,\n" +
"\t\t\"customerId\": 0,\n" +
"\t\t\"maxPassengerNum\": 0,\n" +
"\t\t\"childOilTax\": 0,\n" +
"\t\t\"childVenderPrice\": 1550,\n" +
"\t\t\"sortPrice\": 0,\n" +
"\t\t\"minPassengerNum\": 0,\n" +
"\t\t\"rtDiscount\": 0,\n" +
"\t\t\"fcClassType\": \"5\",\n" +
"\t\t\"classNoCn\": \"\",\n" +
"\t\t\"zvItemIdGo\": 0,\n" +
"\t\t\"promotionBeans\": 0,\n" +
"\t\t\"skuId\": 0,\n" +
"\t\t\"agentFeeGo\": 0.0,\n" +
"\t\t\"venderPrice\": 3100,\n" +
"\t\t\"oldDiscount\": 0,\n" +
"\t\t\"promotionPrice\": 0.0,\n" +
"\t\t\"fullPrice\": 1240,\n" +
"\t\t\"discountFlag\": false,\n" +
"\t\t\"luggallow\": \"\",\n" +
"\t\t\"childPrice\": 0,\n" +
"\t\t\"avItemTax\": 0,\n" +
"\t\t\"deficitPrice\": 3100,\n" +
"\t\t\"resetPolicy\": false,\n" +
"\t\t\"uniqueKey\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQSp/WJesbrOPuaxFl82q79w==\",\n" +
"\t\t\"sourceId\": \"661726\",\n" +
"\t\t\"refundFeeFormulaId\": 0,\n" +
"\t\t\"classNo\": \"F\",\n" +
"\t\t\"pat\": false,\n" +
"\t\t\"iOilTax\": 0,\n" +
"\t\t\"seatNum\": \"6\",\n" +
"\t\t\"oldprice\": 0,\n" +
"\t\t\"productCode\": \"\",\n" +
"\t\t\"netPrice\": 0,\n" +
"\t\t\"childSalePrice\": 0,\n" +
"\t\t\"reducePrice\": 0,\n" +
"\t\t\"exsitsActivity\": false\n" +
"\t}, {\n" +
"\t\t\"airCompanyFlag\": true,\n" +
"\t\t\"activityId\": 0,\n" +
"\t\t\"infantVenderPrice\": 0,\n" +
"\t\t\"policyId\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQL5O7RthR+czuaxFl82q79w==\",\n" +
"\t\t\"rfId\": 0,\n" +
"\t\t\"netChildPrice\": 0,\n" +
"\t\t\"agentFee\": 0.0,\n" +
"\t\t\"promotionReducePrice\": 0,\n" +
"\t\t\"fareItemId\": \"jdselfbspZHZH98992018-02-04C\",\n" +
"\t\t\"discount\": 240,\n" +
"\t\t\"fee\": 0,\n" +
"\t\t\"subsidy\": 0,\n" +
"\t\t\"childSeatCode\": \"C\",\n" +
"\t\t\"price\": 0,\n" +
"\t\t\"originalPrice\": 2980,\n" +
"\t\t\"infantSalePrice\": 0,\n" +
"\t\t\"newMinPrice\": 0,\n" +
"\t\t\"oilTax\": 0,\n" +
"\t\t\"classLevel\": \"C\",\n" +
"\t\t\"zvItemId\": 0,\n" +
"\t\t\"customerId\": 0,\n" +
"\t\t\"maxPassengerNum\": 0,\n" +
"\t\t\"childOilTax\": 0,\n" +
"\t\t\"childVenderPrice\": 1490,\n" +
"\t\t\"sortPrice\": 0,\n" +
"\t\t\"minPassengerNum\": 0,\n" +
"\t\t\"rtDiscount\": 0,\n" +
"\t\t\"fcClassType\": \"5\",\n" +
"\t\t\"classNoCn\": \"\",\n" +
"\t\t\"zvItemIdGo\": 0,\n" +
"\t\t\"promotionBeans\": 0,\n" +
"\t\t\"skuId\": 0,\n" +
"\t\t\"agentFeeGo\": 0.0,\n" +
"\t\t\"venderPrice\": 2980,\n" +
"\t\t\"oldDiscount\": 0,\n" +
"\t\t\"promotionPrice\": 0.0,\n" +
"\t\t\"fullPrice\": 1240,\n" +
"\t\t\"discountFlag\": false,\n" +
"\t\t\"luggallow\": \"\",\n" +
"\t\t\"childPrice\": 0,\n" +
"\t\t\"avItemTax\": 0,\n" +
"\t\t\"deficitPrice\": 2980,\n" +
"\t\t\"resetPolicy\": false,\n" +
"\t\t\"uniqueKey\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQL5O7RthR+czuaxFl82q79w==\",\n" +
"\t\t\"sourceId\": \"661726\",\n" +
"\t\t\"refundFeeFormulaId\": 0,\n" +
"\t\t\"classNo\": \"C\",\n" +
"\t\t\"pat\": false,\n" +
"\t\t\"iOilTax\": 0,\n" +
"\t\t\"seatNum\": \"2\",\n" +
"\t\t\"oldprice\": 0,\n" +
"\t\t\"productCode\": \"\",\n" +
"\t\t\"netPrice\": 0,\n" +
"\t\t\"childSalePrice\": 0,\n" +
"\t\t\"reducePrice\": 0,\n" +
"\t\t\"exsitsActivity\": false\n" +
"\t}, {\n" +
"\t\t\"airCompanyFlag\": true,\n" +
"\t\t\"activityId\": 0,\n" +
"\t\t\"infantVenderPrice\": 0,\n" +
"\t\t\"policyId\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQ0UENkdxWb2buaxFl82q79w==\",\n" +
"\t\t\"rfId\": 0,\n" +
"\t\t\"netChildPrice\": 0,\n" +
"\t\t\"agentFee\": 0.0,\n" +
"\t\t\"promotionReducePrice\": 0,\n" +
"\t\t\"fareItemId\": \"jdselfbspZHZH98992018-02-04M\",\n" +
"\t\t\"discount\": 96,\n" +
"\t\t\"fee\": 0,\n" +
"\t\t\"subsidy\": 0,\n" +
"\t\t\"childSeatCode\": \"Y\",\n" +
"\t\t\"price\": 0,\n" +
"\t\t\"originalPrice\": 1190,\n" +
"\t\t\"infantSalePrice\": 0,\n" +
"\t\t\"newMinPrice\": 0,\n" +
"\t\t\"oilTax\": 0,\n" +
"\t\t\"classLevel\": \"Y\",\n" +
"\t\t\"zvItemId\": 0,\n" +
"\t\t\"customerId\": 0,\n" +
"\t\t\"maxPassengerNum\": 0,\n" +
"\t\t\"childOilTax\": 0,\n" +
"\t\t\"childVenderPrice\": 620,\n" +
"\t\t\"sortPrice\": 0,\n" +
"\t\t\"minPassengerNum\": 0,\n" +
"\t\t\"rtDiscount\": 0,\n" +
"\t\t\"fcClassType\": \"5\",\n" +
"\t\t\"classNoCn\": \"\",\n" +
"\t\t\"zvItemIdGo\": 0,\n" +
"\t\t\"promotionBeans\": 0,\n" +
"\t\t\"skuId\": 0,\n" +
"\t\t\"agentFeeGo\": 0.0,\n" +
"\t\t\"venderPrice\": 1190,\n" +
"\t\t\"oldDiscount\": 0,\n" +
"\t\t\"promotionPrice\": 0.0,\n" +
"\t\t\"fullPrice\": 1240,\n" +
"\t\t\"discountFlag\": false,\n" +
"\t\t\"luggallow\": \"\",\n" +
"\t\t\"childPrice\": 0,\n" +
"\t\t\"avItemTax\": 0,\n" +
"\t\t\"deficitPrice\": 1190,\n" +
"\t\t\"resetPolicy\": false,\n" +
"\t\t\"uniqueKey\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQ0UENkdxWb2buaxFl82q79w==\",\n" +
"\t\t\"sourceId\": \"661726\",\n" +
"\t\t\"refundFeeFormulaId\": 0,\n" +
"\t\t\"classNo\": \"M\",\n" +
"\t\t\"pat\": false,\n" +
"\t\t\"iOilTax\": 0,\n" +
"\t\t\"seatNum\": \"A\",\n" +
"\t\t\"oldprice\": 0,\n" +
"\t\t\"productCode\": \"\",\n" +
"\t\t\"netPrice\": 0,\n" +
"\t\t\"childSalePrice\": 0,\n" +
"\t\t\"reducePrice\": 0,\n" +
"\t\t\"exsitsActivity\": false\n" +
"\t}, {\n" +
"\t\t\"airCompanyFlag\": true,\n" +
"\t\t\"activityId\": 0,\n" +
"\t\t\"infantVenderPrice\": 0,\n" +
"\t\t\"policyId\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQpv8z2L3W34nuaxFl82q79w==\",\n" +
"\t\t\"rfId\": 0,\n" +
"\t\t\"netChildPrice\": 0,\n" +
"\t\t\"agentFee\": 0.0,\n" +
"\t\t\"promotionReducePrice\": 0,\n" +
"\t\t\"fareItemId\": \"jdselfbspZHZH98992018-02-04H\",\n" +
"\t\t\"discount\": 81,\n" +
"\t\t\"fee\": 0,\n" +
"\t\t\"subsidy\": 0,\n" +
"\t\t\"childSeatCode\": \"Y\",\n" +
"\t\t\"price\": 0,\n" +
"\t\t\"originalPrice\": 1000,\n" +
"\t\t\"infantSalePrice\": 0,\n" +
"\t\t\"newMinPrice\": 0,\n" +
"\t\t\"oilTax\": 0,\n" +
"\t\t\"classLevel\": \"Y\",\n" +
"\t\t\"zvItemId\": 0,\n" +
"\t\t\"customerId\": 0,\n" +
"\t\t\"maxPassengerNum\": 0,\n" +
"\t\t\"childOilTax\": 0,\n" +
"\t\t\"childVenderPrice\": 620,\n" +
"\t\t\"sortPrice\": 0,\n" +
"\t\t\"minPassengerNum\": 0,\n" +
"\t\t\"rtDiscount\": 0,\n" +
"\t\t\"fcClassType\": \"5\",\n" +
"\t\t\"classNoCn\": \"\",\n" +
"\t\t\"zvItemIdGo\": 0,\n" +
"\t\t\"promotionBeans\": 0,\n" +
"\t\t\"skuId\": 0,\n" +
"\t\t\"agentFeeGo\": 0.0,\n" +
"\t\t\"venderPrice\": 1000,\n" +
"\t\t\"oldDiscount\": 0,\n" +
"\t\t\"promotionPrice\": 0.0,\n" +
"\t\t\"fullPrice\": 1240,\n" +
"\t\t\"discountFlag\": false,\n" +
"\t\t\"luggallow\": \"\",\n" +
"\t\t\"childPrice\": 0,\n" +
"\t\t\"avItemTax\": 0,\n" +
"\t\t\"deficitPrice\": 1000,\n" +
"\t\t\"resetPolicy\": false,\n" +
"\t\t\"uniqueKey\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQpv8z2L3W34nuaxFl82q79w==\",\n" +
"\t\t\"sourceId\": \"661726\",\n" +
"\t\t\"refundFeeFormulaId\": 0,\n" +
"\t\t\"classNo\": \"H\",\n" +
"\t\t\"pat\": false,\n" +
"\t\t\"iOilTax\": 0,\n" +
"\t\t\"seatNum\": \"A\",\n" +
"\t\t\"oldprice\": 0,\n" +
"\t\t\"productCode\": \"\",\n" +
"\t\t\"netPrice\": 0,\n" +
"\t\t\"childSalePrice\": 0,\n" +
"\t\t\"reducePrice\": 0,\n" +
"\t\t\"exsitsActivity\": false\n" +
"\t}, {\n" +
"\t\t\"airCompanyFlag\": true,\n" +
"\t\t\"activityId\": 0,\n" +
"\t\t\"infantVenderPrice\": 0,\n" +
"\t\t\"policyId\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQy40pO0Np5b/uaxFl82q79w==\",\n" +
"\t\t\"rfId\": 0,\n" +
"\t\t\"netChildPrice\": 0,\n" +
"\t\t\"agentFee\": 0.0,\n" +
"\t\t\"promotionReducePrice\": 0,\n" +
"\t\t\"fareItemId\": \"jdselfbspZHZH98992018-02-04U\",\n" +
"\t\t\"discount\": 86,\n" +
"\t\t\"fee\": 0,\n" +
"\t\t\"subsidy\": 0,\n" +
"\t\t\"childSeatCode\": \"Y\",\n" +
"\t\t\"price\": 0,\n" +
"\t\t\"originalPrice\": 1070,\n" +
"\t\t\"infantSalePrice\": 0,\n" +
"\t\t\"newMinPrice\": 0,\n" +
"\t\t\"oilTax\": 0,\n" +
"\t\t\"classLevel\": \"Y\",\n" +
"\t\t\"zvItemId\": 0,\n" +
"\t\t\"customerId\": 0,\n" +
"\t\t\"maxPassengerNum\": 0,\n" +
"\t\t\"childOilTax\": 0,\n" +
"\t\t\"childVenderPrice\": 620,\n" +
"\t\t\"sortPrice\": 0,\n" +
"\t\t\"minPassengerNum\": 0,\n" +
"\t\t\"rtDiscount\": 0,\n" +
"\t\t\"fcClassType\": \"5\",\n" +
"\t\t\"classNoCn\": \"\",\n" +
"\t\t\"zvItemIdGo\": 0,\n" +
"\t\t\"promotionBeans\": 0,\n" +
"\t\t\"skuId\": 0,\n" +
"\t\t\"agentFeeGo\": 0.0,\n" +
"\t\t\"venderPrice\": 1070,\n" +
"\t\t\"oldDiscount\": 0,\n" +
"\t\t\"promotionPrice\": 0.0,\n" +
"\t\t\"fullPrice\": 1240,\n" +
"\t\t\"discountFlag\": false,\n" +
"\t\t\"luggallow\": \"\",\n" +
"\t\t\"childPrice\": 0,\n" +
"\t\t\"avItemTax\": 0,\n" +
"\t\t\"deficitPrice\": 1070,\n" +
"\t\t\"resetPolicy\": false,\n" +
"\t\t\"uniqueKey\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQy40pO0Np5b/uaxFl82q79w==\",\n" +
"\t\t\"sourceId\": \"661726\",\n" +
"\t\t\"refundFeeFormulaId\": 0,\n" +
"\t\t\"classNo\": \"U\",\n" +
"\t\t\"pat\": false,\n" +
"\t\t\"iOilTax\": 0,\n" +
"\t\t\"seatNum\": \"A\",\n" +
"\t\t\"oldprice\": 0,\n" +
"\t\t\"productCode\": \"\",\n" +
"\t\t\"netPrice\": 0,\n" +
"\t\t\"childSalePrice\": 0,\n" +
"\t\t\"reducePrice\": 0,\n" +
"\t\t\"exsitsActivity\": false\n" +
"\t}, {\n" +
"\t\t\"airCompanyFlag\": true,\n" +
"\t\t\"activityId\": 0,\n" +
"\t\t\"infantVenderPrice\": 0,\n" +
"\t\t\"policyId\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQ9Rp/VJ4NrDTuaxFl82q79w==\",\n" +
"\t\t\"rfId\": 0,\n" +
"\t\t\"netChildPrice\": 0,\n" +
"\t\t\"agentFee\": 0.0,\n" +
"\t\t\"promotionReducePrice\": 0,\n" +
"\t\t\"fareItemId\": \"jdselfbspZHZH98992018-02-04Y\",\n" +
"\t\t\"discount\": 100,\n" +
"\t\t\"fee\": 0,\n" +
"\t\t\"subsidy\": 0,\n" +
"\t\t\"childSeatCode\": \"Y\",\n" +
"\t\t\"price\": 0,\n" +
"\t\t\"originalPrice\": 1240,\n" +
"\t\t\"infantSalePrice\": 0,\n" +
"\t\t\"newMinPrice\": 0,\n" +
"\t\t\"oilTax\": 0,\n" +
"\t\t\"classLevel\": \"Y\",\n" +
"\t\t\"zvItemId\": 0,\n" +
"\t\t\"customerId\": 0,\n" +
"\t\t\"maxPassengerNum\": 0,\n" +
"\t\t\"childOilTax\": 0,\n" +
"\t\t\"childVenderPrice\": 620,\n" +
"\t\t\"sortPrice\": 0,\n" +
"\t\t\"minPassengerNum\": 0,\n" +
"\t\t\"rtDiscount\": 0,\n" +
"\t\t\"fcClassType\": \"5\",\n" +
"\t\t\"classNoCn\": \"\",\n" +
"\t\t\"zvItemIdGo\": 0,\n" +
"\t\t\"promotionBeans\": 0,\n" +
"\t\t\"skuId\": 0,\n" +
"\t\t\"agentFeeGo\": 0.0,\n" +
"\t\t\"venderPrice\": 1240,\n" +
"\t\t\"oldDiscount\": 0,\n" +
"\t\t\"promotionPrice\": 0.0,\n" +
"\t\t\"fullPrice\": 1240,\n" +
"\t\t\"discountFlag\": false,\n" +
"\t\t\"luggallow\": \"\",\n" +
"\t\t\"childPrice\": 0,\n" +
"\t\t\"avItemTax\": 0,\n" +
"\t\t\"deficitPrice\": 1240,\n" +
"\t\t\"resetPolicy\": false,\n" +
"\t\t\"uniqueKey\": \"v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQ9Rp/VJ4NrDTuaxFl82q79w==\",\n" +
"\t\t\"sourceId\": \"661726\",\n" +
"\t\t\"refundFeeFormulaId\": 0,\n" +
"\t\t\"classNo\": \"Y\",\n" +
"\t\t\"pat\": false,\n" +
"\t\t\"iOilTax\": 0,\n" +
"\t\t\"seatNum\": \"A\",\n" +
"\t\t\"oldprice\": 0,\n" +
"\t\t\"productCode\": \"\",\n" +
"\t\t\"netPrice\": 0,\n" +
"\t\t\"childSalePrice\": 0,\n" +
"\t\t\"reducePrice\": 0,\n" +
"\t\t\"exsitsActivity\": false\n" +
"\t}],\n" +
"\t\"airwaysCn\": \"深圳航空\",\n" +
"\t\"minPrice\": 0,\n" +
"\t\"discountCN\": \"0\"\n" +
"}";