使用Jackson解析Json数组

 笔记记录一下使用jackson解析Json数组

使用jackson-all-1.8.5.jar这个jar包对于诸如下面的json数组进行解析:

{"avgSendTime":2400.0,"caution":"","cityId":999999,"ctime":1523154859,"daySeq":"13","deliveryTime":0,"detail":"[{\"app_food_code\":\"锅包肉\",\"box_num\":1,\"box_price\":0.01,\"cart_id\":0,\"food_discount\":1,\"food_name\":\"锅包肉\",\"food_property\":\"特辣\",\"price\":0.01,\"quantity\":1,\"sku_id\":\"\",\"spec\":\"大份\",\"unit\":\"份\"}]","dinnersNumber":0,"ePoiId":"123","extras":"[{}]","hasInvoiced":0,"invoiceTitle":"","isFavorites":false,"isPoiFirstOrder":true,"isThirdShipping":0,"latitude":29.774491,"logisticsCode":"0000","longitude":95.369272,"orderId":9660995202,"orderIdView":28982501435874421,"originalPrice":0.03,"payType":1,"poiAddress":"南极洲04号站","poiFirstOrder":true,"poiId":2898250,"poiName":"t_jFGhznyZ","poiPhone":"4009208801","poiReceiveDetail":"{\"actOrderChargeByMt\":[{\"comment\":\"活动款\",\"feeTypeDesc\":\"活动款\",\"feeTypeId\":10019,\"moneyCent\":0}],\"actOrderChargeByPoi\":[],\"foodShareFeeChargeByPoi\":0,\"logisticsFee\":1,\"onlinePayment\":3,\"wmPoiReceiveCent\":3}","recipientAddress":"色金拉 (大厦11)@#西藏自治区林芝市墨脱县色金拉","recipientName":"王五(先生)","recipientPhone":"18800467403","shipperPhone":"","shippingFee":0.01,"status":4,"taxpayerId":"","total":0.03,"utime":1523154874}

        如上面的样例:

ObjectMapper mapper = new ObjectMapper();
        String json = " {\"app_food_code\":\"锅包肉\",\"box_num\":1,\"box_price\":0.01,\"cart_id\":0,\"food_discount\":1,\"food_name\":\"锅包肉\",\"food_property\":\"特辣\",\"price\":0.01,\"quantity\":1,\"sku_id\":\"\",\"spec\":\"大份\",\"unit\":\"份\"} ";
        String json1 = "{\"actOrderChargeByMt\":[{\"comment\":\"活动款\",\"feeTypeDesc\":\"活动款\",\"feeTypeId\":10019,\"moneyCent\":0}],\"actOrderChargeByPoi\":[],\"foodShareFeeChargeByPoi\":0,\"logisticsFee\":1,\"onlinePayment\":3,\"wmPoiReceiveCent\":3}";
        System.out.println(json);
        Food food = mapper.readValue(json,Food.class);
        Order order = mapper.readValue(json1,Order.class);
        System.out.println(food.getApp_food_code());
        System.out.println(food.getBox_num());
        System.out.println(food.getBox_price());
        String strJson = mapper.writeValueAsString(order);
        System.out.println(strJson);

运行程序的结果 如下图:

        

        解析的字符串中含有的斜线是进行转义的。

你可能感兴趣的:(【项目总结】)