zoukankan      html  css  js  c++  java
  • Java中Json字符串转换为对象的方法(多层List集合)

    借鉴自: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代码

     1         try{
     2             JSONObject jsonObject = JSONObject.fromObject(jsonFlight);
     3             Map<String,Class> map = new HashMap<String,Class>();
     4             map.put("bingoClassInfoList", FlightClassInfo.class);
     5             FlightInfo flightInfo = (FlightInfo) JSONObject.toBean(jsonObject, FlightInfo.class, map);
     6             List<FlightInfo> flights = new ArrayList<FlightInfo>();
     7             flights.add(flightInfo);
     8             filterCharterFlight(flights);
     9             System.out.println(flights.toString());
    10         }catch (Exception e){
    11             e.printStackTrace();
    12         }

    其中FlightInfo类如下:

     1 import java.io.Serializable;
     2 import java.util.List;
     3 
     4 public class FlightInfo implements Serializable {
     5 
     6     private static final long serialVersionUID = 8604216922911620556L;
     7     /**
     8      * 航班信息属性
     9      */
    10     public String airways;
    11 
    12     public String airwaysCn;
    13 
    14     public String arrAirdrome;
    15 
    16     public String arrCity;
    17 
    18     public String arrCityCn;
    19 
    20     public String arrDate;
    21 
    22     public String arrTerminal;
    23 
    24     public String arrTime;
    25 
    26     public boolean asr;
    27 
    28     public String carrier;
    29 
    30     public String carrierCn;
    31 
    32     public long childfee;
    33 
    34     public List<FlightClassInfo> bingoClassInfoList;
    35    。。。。。

    FlightClassInfo类对象如下:

     1 import java.io.Serializable;
     2 import java.util.List;
     3 
     4 public class FlightClassInfo implements Serializable {
     5 
     6     private static final long serialVersionUID = 2932213372331900441L;
     7 
     8     public String c;
     9 
    10     public double agentFee;
    11 
    12     public double agentFeeGo;
    13 
    14     public long avItemTax;
    15 
    16     public String basicCabinRef;
    17 
    18     public long childOilTax;
    19 
    20     public long childPrice;
    21 
    22     public String childfarebasis;
    23 
    24     public String classNo;
    25 
    26     public String classNoCn;
    27     。。。。。。

    json字符串如下

    String jsonFlight = "{
    " +
                    "	"oldminPrice": 0,
    " +
                    "	"depTerminal": "T3",
    " +
                    "	"minDiscount": 0,
    " +
                    "	"earningLevel": 0,
    " +
                    "	"asr": false,
    " +
                    "	"sourceId": "661726",
    " +
                    "	"arrCity": "HFE",
    " +
                    "	"childfee": 0,
    " +
                    "	"flightNo": "ZH9899",
    " +
                    "	"planeStyle": "320",
    " +
                    "	"arrTime": "0025",
    " +
                    "	"codeShare": false,
    " +
                    "	"arrDate": "2018-02-05",
    " +
                    "	"depTime": "2215",
    " +
                    "	"depDate": "2018-02-04",
    " +
                    "	"isStop": "0",
    " +
                    "	"airways": "ZH",
    " +
                    "	"depAirdrome": "宝安机场",
    " +
                    "	"depCity": "SZX",
    " +
                    "	"exsitsActivity": false,
    " +
                    "	"fee": 0,
    " +
                    "	"tax": 50,
    " +
                    "	"arrAirdrome": "新桥机场",
    " +
                    "	"originalMinPrice": 0,
    " +
                    "	"arrTerminal": "机场",
    " +
                    "	"fullPrice": 1240,
    " +
                    "	"bingoClassInfoList": [{
    " +
                    "		"airCompanyFlag": true,
    " +
                    "		"activityId": 0,
    " +
                    "		"infantVenderPrice": 0,
    " +
                    "		"policyId": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQSp/WJesbrOPuaxFl82q79w==",
    " +
                    "		"rfId": 0,
    " +
                    "		"netChildPrice": 0,
    " +
                    "		"agentFee": 0.0,
    " +
                    "		"promotionReducePrice": 0,
    " +
                    "		"fareItemId": "jdselfbspZHZH98992018-02-04F",
    " +
                    "		"discount": 250,
    " +
                    "		"fee": 0,
    " +
                    "		"subsidy": 0,
    " +
                    "		"childSeatCode": "F",
    " +
                    "		"price": 0,
    " +
                    "		"originalPrice": 3100,
    " +
                    "		"infantSalePrice": 0,
    " +
                    "		"newMinPrice": 0,
    " +
                    "		"oilTax": 0,
    " +
                    "		"classLevel": "F",
    " +
                    "		"zvItemId": 0,
    " +
                    "		"customerId": 0,
    " +
                    "		"maxPassengerNum": 0,
    " +
                    "		"childOilTax": 0,
    " +
                    "		"childVenderPrice": 1550,
    " +
                    "		"sortPrice": 0,
    " +
                    "		"minPassengerNum": 0,
    " +
                    "		"rtDiscount": 0,
    " +
                    "		"fcClassType": "5",
    " +
                    "		"classNoCn": "",
    " +
                    "		"zvItemIdGo": 0,
    " +
                    "		"promotionBeans": 0,
    " +
                    "		"skuId": 0,
    " +
                    "		"agentFeeGo": 0.0,
    " +
                    "		"venderPrice": 3100,
    " +
                    "		"oldDiscount": 0,
    " +
                    "		"promotionPrice": 0.0,
    " +
                    "		"fullPrice": 1240,
    " +
                    "		"discountFlag": false,
    " +
                    "		"luggallow": "",
    " +
                    "		"childPrice": 0,
    " +
                    "		"avItemTax": 0,
    " +
                    "		"deficitPrice": 3100,
    " +
                    "		"resetPolicy": false,
    " +
                    "		"uniqueKey": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQSp/WJesbrOPuaxFl82q79w==",
    " +
                    "		"sourceId": "661726",
    " +
                    "		"refundFeeFormulaId": 0,
    " +
                    "		"classNo": "F",
    " +
                    "		"pat": false,
    " +
                    "		"iOilTax": 0,
    " +
                    "		"seatNum": "6",
    " +
                    "		"oldprice": 0,
    " +
                    "		"productCode": "",
    " +
                    "		"netPrice": 0,
    " +
                    "		"childSalePrice": 0,
    " +
                    "		"reducePrice": 0,
    " +
                    "		"exsitsActivity": false
    " +
                    "	}, {
    " +
                    "		"airCompanyFlag": true,
    " +
                    "		"activityId": 0,
    " +
                    "		"infantVenderPrice": 0,
    " +
                    "		"policyId": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQL5O7RthR+czuaxFl82q79w==",
    " +
                    "		"rfId": 0,
    " +
                    "		"netChildPrice": 0,
    " +
                    "		"agentFee": 0.0,
    " +
                    "		"promotionReducePrice": 0,
    " +
                    "		"fareItemId": "jdselfbspZHZH98992018-02-04C",
    " +
                    "		"discount": 240,
    " +
                    "		"fee": 0,
    " +
                    "		"subsidy": 0,
    " +
                    "		"childSeatCode": "C",
    " +
                    "		"price": 0,
    " +
                    "		"originalPrice": 2980,
    " +
                    "		"infantSalePrice": 0,
    " +
                    "		"newMinPrice": 0,
    " +
                    "		"oilTax": 0,
    " +
                    "		"classLevel": "C",
    " +
                    "		"zvItemId": 0,
    " +
                    "		"customerId": 0,
    " +
                    "		"maxPassengerNum": 0,
    " +
                    "		"childOilTax": 0,
    " +
                    "		"childVenderPrice": 1490,
    " +
                    "		"sortPrice": 0,
    " +
                    "		"minPassengerNum": 0,
    " +
                    "		"rtDiscount": 0,
    " +
                    "		"fcClassType": "5",
    " +
                    "		"classNoCn": "",
    " +
                    "		"zvItemIdGo": 0,
    " +
                    "		"promotionBeans": 0,
    " +
                    "		"skuId": 0,
    " +
                    "		"agentFeeGo": 0.0,
    " +
                    "		"venderPrice": 2980,
    " +
                    "		"oldDiscount": 0,
    " +
                    "		"promotionPrice": 0.0,
    " +
                    "		"fullPrice": 1240,
    " +
                    "		"discountFlag": false,
    " +
                    "		"luggallow": "",
    " +
                    "		"childPrice": 0,
    " +
                    "		"avItemTax": 0,
    " +
                    "		"deficitPrice": 2980,
    " +
                    "		"resetPolicy": false,
    " +
                    "		"uniqueKey": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQL5O7RthR+czuaxFl82q79w==",
    " +
                    "		"sourceId": "661726",
    " +
                    "		"refundFeeFormulaId": 0,
    " +
                    "		"classNo": "C",
    " +
                    "		"pat": false,
    " +
                    "		"iOilTax": 0,
    " +
                    "		"seatNum": "2",
    " +
                    "		"oldprice": 0,
    " +
                    "		"productCode": "",
    " +
                    "		"netPrice": 0,
    " +
                    "		"childSalePrice": 0,
    " +
                    "		"reducePrice": 0,
    " +
                    "		"exsitsActivity": false
    " +
                    "	}, {
    " +
                    "		"airCompanyFlag": true,
    " +
                    "		"activityId": 0,
    " +
                    "		"infantVenderPrice": 0,
    " +
                    "		"policyId": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQ0UENkdxWb2buaxFl82q79w==",
    " +
                    "		"rfId": 0,
    " +
                    "		"netChildPrice": 0,
    " +
                    "		"agentFee": 0.0,
    " +
                    "		"promotionReducePrice": 0,
    " +
                    "		"fareItemId": "jdselfbspZHZH98992018-02-04M",
    " +
                    "		"discount": 96,
    " +
                    "		"fee": 0,
    " +
                    "		"subsidy": 0,
    " +
                    "		"childSeatCode": "Y",
    " +
                    "		"price": 0,
    " +
                    "		"originalPrice": 1190,
    " +
                    "		"infantSalePrice": 0,
    " +
                    "		"newMinPrice": 0,
    " +
                    "		"oilTax": 0,
    " +
                    "		"classLevel": "Y",
    " +
                    "		"zvItemId": 0,
    " +
                    "		"customerId": 0,
    " +
                    "		"maxPassengerNum": 0,
    " +
                    "		"childOilTax": 0,
    " +
                    "		"childVenderPrice": 620,
    " +
                    "		"sortPrice": 0,
    " +
                    "		"minPassengerNum": 0,
    " +
                    "		"rtDiscount": 0,
    " +
                    "		"fcClassType": "5",
    " +
                    "		"classNoCn": "",
    " +
                    "		"zvItemIdGo": 0,
    " +
                    "		"promotionBeans": 0,
    " +
                    "		"skuId": 0,
    " +
                    "		"agentFeeGo": 0.0,
    " +
                    "		"venderPrice": 1190,
    " +
                    "		"oldDiscount": 0,
    " +
                    "		"promotionPrice": 0.0,
    " +
                    "		"fullPrice": 1240,
    " +
                    "		"discountFlag": false,
    " +
                    "		"luggallow": "",
    " +
                    "		"childPrice": 0,
    " +
                    "		"avItemTax": 0,
    " +
                    "		"deficitPrice": 1190,
    " +
                    "		"resetPolicy": false,
    " +
                    "		"uniqueKey": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQ0UENkdxWb2buaxFl82q79w==",
    " +
                    "		"sourceId": "661726",
    " +
                    "		"refundFeeFormulaId": 0,
    " +
                    "		"classNo": "M",
    " +
                    "		"pat": false,
    " +
                    "		"iOilTax": 0,
    " +
                    "		"seatNum": "A",
    " +
                    "		"oldprice": 0,
    " +
                    "		"productCode": "",
    " +
                    "		"netPrice": 0,
    " +
                    "		"childSalePrice": 0,
    " +
                    "		"reducePrice": 0,
    " +
                    "		"exsitsActivity": false
    " +
                    "	}, {
    " +
                    "		"airCompanyFlag": true,
    " +
                    "		"activityId": 0,
    " +
                    "		"infantVenderPrice": 0,
    " +
                    "		"policyId": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQpv8z2L3W34nuaxFl82q79w==",
    " +
                    "		"rfId": 0,
    " +
                    "		"netChildPrice": 0,
    " +
                    "		"agentFee": 0.0,
    " +
                    "		"promotionReducePrice": 0,
    " +
                    "		"fareItemId": "jdselfbspZHZH98992018-02-04H",
    " +
                    "		"discount": 81,
    " +
                    "		"fee": 0,
    " +
                    "		"subsidy": 0,
    " +
                    "		"childSeatCode": "Y",
    " +
                    "		"price": 0,
    " +
                    "		"originalPrice": 1000,
    " +
                    "		"infantSalePrice": 0,
    " +
                    "		"newMinPrice": 0,
    " +
                    "		"oilTax": 0,
    " +
                    "		"classLevel": "Y",
    " +
                    "		"zvItemId": 0,
    " +
                    "		"customerId": 0,
    " +
                    "		"maxPassengerNum": 0,
    " +
                    "		"childOilTax": 0,
    " +
                    "		"childVenderPrice": 620,
    " +
                    "		"sortPrice": 0,
    " +
                    "		"minPassengerNum": 0,
    " +
                    "		"rtDiscount": 0,
    " +
                    "		"fcClassType": "5",
    " +
                    "		"classNoCn": "",
    " +
                    "		"zvItemIdGo": 0,
    " +
                    "		"promotionBeans": 0,
    " +
                    "		"skuId": 0,
    " +
                    "		"agentFeeGo": 0.0,
    " +
                    "		"venderPrice": 1000,
    " +
                    "		"oldDiscount": 0,
    " +
                    "		"promotionPrice": 0.0,
    " +
                    "		"fullPrice": 1240,
    " +
                    "		"discountFlag": false,
    " +
                    "		"luggallow": "",
    " +
                    "		"childPrice": 0,
    " +
                    "		"avItemTax": 0,
    " +
                    "		"deficitPrice": 1000,
    " +
                    "		"resetPolicy": false,
    " +
                    "		"uniqueKey": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQpv8z2L3W34nuaxFl82q79w==",
    " +
                    "		"sourceId": "661726",
    " +
                    "		"refundFeeFormulaId": 0,
    " +
                    "		"classNo": "H",
    " +
                    "		"pat": false,
    " +
                    "		"iOilTax": 0,
    " +
                    "		"seatNum": "A",
    " +
                    "		"oldprice": 0,
    " +
                    "		"productCode": "",
    " +
                    "		"netPrice": 0,
    " +
                    "		"childSalePrice": 0,
    " +
                    "		"reducePrice": 0,
    " +
                    "		"exsitsActivity": false
    " +
                    "	}, {
    " +
                    "		"airCompanyFlag": true,
    " +
                    "		"activityId": 0,
    " +
                    "		"infantVenderPrice": 0,
    " +
                    "		"policyId": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQy40pO0Np5b/uaxFl82q79w==",
    " +
                    "		"rfId": 0,
    " +
                    "		"netChildPrice": 0,
    " +
                    "		"agentFee": 0.0,
    " +
                    "		"promotionReducePrice": 0,
    " +
                    "		"fareItemId": "jdselfbspZHZH98992018-02-04U",
    " +
                    "		"discount": 86,
    " +
                    "		"fee": 0,
    " +
                    "		"subsidy": 0,
    " +
                    "		"childSeatCode": "Y",
    " +
                    "		"price": 0,
    " +
                    "		"originalPrice": 1070,
    " +
                    "		"infantSalePrice": 0,
    " +
                    "		"newMinPrice": 0,
    " +
                    "		"oilTax": 0,
    " +
                    "		"classLevel": "Y",
    " +
                    "		"zvItemId": 0,
    " +
                    "		"customerId": 0,
    " +
                    "		"maxPassengerNum": 0,
    " +
                    "		"childOilTax": 0,
    " +
                    "		"childVenderPrice": 620,
    " +
                    "		"sortPrice": 0,
    " +
                    "		"minPassengerNum": 0,
    " +
                    "		"rtDiscount": 0,
    " +
                    "		"fcClassType": "5",
    " +
                    "		"classNoCn": "",
    " +
                    "		"zvItemIdGo": 0,
    " +
                    "		"promotionBeans": 0,
    " +
                    "		"skuId": 0,
    " +
                    "		"agentFeeGo": 0.0,
    " +
                    "		"venderPrice": 1070,
    " +
                    "		"oldDiscount": 0,
    " +
                    "		"promotionPrice": 0.0,
    " +
                    "		"fullPrice": 1240,
    " +
                    "		"discountFlag": false,
    " +
                    "		"luggallow": "",
    " +
                    "		"childPrice": 0,
    " +
                    "		"avItemTax": 0,
    " +
                    "		"deficitPrice": 1070,
    " +
                    "		"resetPolicy": false,
    " +
                    "		"uniqueKey": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQy40pO0Np5b/uaxFl82q79w==",
    " +
                    "		"sourceId": "661726",
    " +
                    "		"refundFeeFormulaId": 0,
    " +
                    "		"classNo": "U",
    " +
                    "		"pat": false,
    " +
                    "		"iOilTax": 0,
    " +
                    "		"seatNum": "A",
    " +
                    "		"oldprice": 0,
    " +
                    "		"productCode": "",
    " +
                    "		"netPrice": 0,
    " +
                    "		"childSalePrice": 0,
    " +
                    "		"reducePrice": 0,
    " +
                    "		"exsitsActivity": false
    " +
                    "	}, {
    " +
                    "		"airCompanyFlag": true,
    " +
                    "		"activityId": 0,
    " +
                    "		"infantVenderPrice": 0,
    " +
                    "		"policyId": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQ9Rp/VJ4NrDTuaxFl82q79w==",
    " +
                    "		"rfId": 0,
    " +
                    "		"netChildPrice": 0,
    " +
                    "		"agentFee": 0.0,
    " +
                    "		"promotionReducePrice": 0,
    " +
                    "		"fareItemId": "jdselfbspZHZH98992018-02-04Y",
    " +
                    "		"discount": 100,
    " +
                    "		"fee": 0,
    " +
                    "		"subsidy": 0,
    " +
                    "		"childSeatCode": "Y",
    " +
                    "		"price": 0,
    " +
                    "		"originalPrice": 1240,
    " +
                    "		"infantSalePrice": 0,
    " +
                    "		"newMinPrice": 0,
    " +
                    "		"oilTax": 0,
    " +
                    "		"classLevel": "Y",
    " +
                    "		"zvItemId": 0,
    " +
                    "		"customerId": 0,
    " +
                    "		"maxPassengerNum": 0,
    " +
                    "		"childOilTax": 0,
    " +
                    "		"childVenderPrice": 620,
    " +
                    "		"sortPrice": 0,
    " +
                    "		"minPassengerNum": 0,
    " +
                    "		"rtDiscount": 0,
    " +
                    "		"fcClassType": "5",
    " +
                    "		"classNoCn": "",
    " +
                    "		"zvItemIdGo": 0,
    " +
                    "		"promotionBeans": 0,
    " +
                    "		"skuId": 0,
    " +
                    "		"agentFeeGo": 0.0,
    " +
                    "		"venderPrice": 1240,
    " +
                    "		"oldDiscount": 0,
    " +
                    "		"promotionPrice": 0.0,
    " +
                    "		"fullPrice": 1240,
    " +
                    "		"discountFlag": false,
    " +
                    "		"luggallow": "",
    " +
                    "		"childPrice": 0,
    " +
                    "		"avItemTax": 0,
    " +
                    "		"deficitPrice": 1240,
    " +
                    "		"resetPolicy": false,
    " +
                    "		"uniqueKey": "v/UmAGQoE1+A3k+c8S1V75wUyW4oMfSQ9Rp/VJ4NrDTuaxFl82q79w==",
    " +
                    "		"sourceId": "661726",
    " +
                    "		"refundFeeFormulaId": 0,
    " +
                    "		"classNo": "Y",
    " +
                    "		"pat": false,
    " +
                    "		"iOilTax": 0,
    " +
                    "		"seatNum": "A",
    " +
                    "		"oldprice": 0,
    " +
                    "		"productCode": "",
    " +
                    "		"netPrice": 0,
    " +
                    "		"childSalePrice": 0,
    " +
                    "		"reducePrice": 0,
    " +
                    "		"exsitsActivity": false
    " +
                    "	}],
    " +
                    "	"airwaysCn": "深圳航空",
    " +
                    "	"minPrice": 0,
    " +
                    "	"discountCN": "0"
    " +
                    "}";
    View Code
  • 相关阅读:
    没有可持续集成的日子里
    Apache Avro 与 Thrift 比较
    CruiseControl.NET以及使用
    不靠谱产品经理的特征
    Hadoop 新 MapReduce 框架 Yarn 详解
    Storm On YARN
    iOS开发资源:推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等
    Swift REPL入门介绍
    学习Swift,一定不能错过的10大开源项目!
    iOS8 Size Classes的理解与使用
  • 原文地址:https://www.cnblogs.com/zhima-hu/p/8352657.html
Copyright © 2011-2022 走看看