2017-04-10 143 views
-3

我面臨的問題,同時通過使用Jackson API ObjectMapper類將JSON字符串轉換爲Java對象。JSON到JAVA對象由傑克遜

有人可以幫助我將JSON轉換爲等價的Java Object格式。

在此先感謝。

JSON字符串:

{ 

    "CUX_OE_ORDER_INFO_V": [ 

    { 

     "CITY": "南京市", 

     "ADDRESS1": "金箔路購物廣場", 

     "ADDRESS2": "江寧區東山鎮金箔路999號(地下一層部分地上", 

     }, 

    { 

     "CITY": "南京市", 

     "ADDRESS1": "金箔路購物廣場", 

     "ADDRESS2": "江寧區東山鎮金箔路999號(地下一層部分地上", 

    }, 

    { 

     "CITY": "南京市", 

     "ADDRESS1": "金箔路購物廣場", 

     "ADDRESS2": "江寧區東山鎮金箔路999號(地下一層部分地上", 

    } 

    ] 

} 

的Java類:

import com.fasterxml.jackson.databind.ObjectMapper; 

import test.yiliservice.GetCUXOEORDERINFOV; 
import test.yiliservice.ObjectFactory; 
import test.yiliservice.YiliService; 
import test.yiliservice.YiliServicePortType; 

public class OrderInfoClient { 

    public static void main(String ...a){ 


     try { 
      YiliService yiliService=new YiliService(); 
      YiliServicePortType service= yiliService.getYiliServiceHttpPort(); 
      ObjectFactory factory=new ObjectFactory(); 
      GetCUXOEORDERINFOV request=factory.createGetCUXOEORDERINFOV(); 
      request.setIn0("password"); 
      request.setIn1("Y"); 
      request.setIn2("order_number = '60212191'"); 
      String response=service.getCUXOEORDERINFOV("password", "Y", "order_number = '60212191'"); 
      System.out.println("Response :"+response); 
      //Convert JSON to a Map 

      ObjectMapper mapper = new ObjectMapper(); 
      MyPojo map = mapper.readValue(response, MyPojo.class); 
      for (CUX_OE_ORDER_INFO_V b1: map.getCUX_OE_ORDER_INFO_V()){ 
       System.out.println(b1.getORDER_NUMBER()); 
      } 
     } catch (JsonParseException e) { 
      e.printStackTrace(); 
     } catch (JsonMappingException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 

} 

MyPojo.java:

import java.util.List; 

    public class MyPojo 
    { 
     private List<CUX_OE_ORDER_INFO_V> CUX_OE_ORDER_INFO_V; 

     public List<CUX_OE_ORDER_INFO_V> getCUX_OE_ORDER_INFO_V() 
     { 
      return CUX_OE_ORDER_INFO_V; 
     } 

     public void setCUX_OE_ORDER_INFO_V (List<CUX_OE_ORDER_INFO_V> CUX_OE_ORDER_INFO_V) 
     { 
      this.CUX_OE_ORDER_INFO_V = CUX_OE_ORDER_INFO_V; 
     } 

     @Override 
     public String toString() 
     { 
      return "ClassPojo [CUX_OE_ORDER_INFO_V = "+CUX_OE_ORDER_INFO_V+"]"; 
     } 
    } 

例外: -

com.fasterxml.jackson.core.JsonParseException:意外字符 ('C'(code 67)):期待雙字引號開始字段名稱 [來源: {CUX_OE_ORDER_INFO_V:[{「DEPT_NAME」:「液奶事業部」, 「SALES_AREA」: 「蘇皖」, 「OBU」: 「南京」, 「HEADER_ID」:19453912, 「ORDER_NUMBER」:60212191, 「LINE_ID」:142741593 「LINE_NUMBER」:3 「ORDER_SOURCE_ID」:0 ,「NAME」:「聯機」,「ORDER_TYPE_ID」:1199,「ORDER_TYPE」:「南京分標準銷售訂單」,「REQUEST_DATE」:「2015-08-31 15:02:41.0」,「PRICING_DATE」:「 2015-08-31 15:02:30.0「,」ORDERED_DATE「:」2015-08-31 15:02:56.0「,」LAST_UPDATE_DATE「:」2015-08-31 15:34:25.0「,」 PAYMENT_TERM_ID「:1003,」TERMS「:」6 Days「,」SALESREP_ID「:101875802,」SALES_NAME「:」譚豔兵「,」ORG_ID「:179,」CUSTOMER_PRODUCTION_LINE「:」null「,」CUSTOMER_ID「:3595, CUSTOMER_TY PE 「:」 R」, 「的organization_ID」:365, 「SHIP_SITE_USE_ID」:175067 「BILL_SITE_USE_ID」:175065 「SHIPPING_METHOD_CODE」: 「汽運 - 汽運直營」, 「CUSTOMER_CLASS_CODE」: 「空」, 「CUSTOMER_NUMBER」 : 「NJSG0001」, 「CUSTOMER_NAME」: 「蘇果超市有限公司」, 「ORDER_CATEGORY_CODE」: 「階」, 「HEADER_FLOW_STATUS_CODE」: 「BOOKED」, 「LIN_FLOW_STATUS_CODE」: 「AWAITING_SHIPPING」, 「ITEM_NUM」: 「204104001900」,」 ORDER_QUANTITY_UOM「:」EA「,」UNIT_OF_MEASURE「:」件「,」ORDERED_QUANTITY「:30,」SCHEDULE_SHIP_DATE「:」2015-08-31 23:59:00.0「,」INVENTORY_ITEM_ID「:4696613,」PRICE_LIST_ID「:11837 「PRICE_LIST」: 「南京分公司蘇果超市價格」, 「CURRENCY_CODE」: 「人民幣」, 「CONVERSION_RATE」:空, 「CONVERSION_TYPE_CODE」: 「公司」, 「CONVERSION_RATE_DATE」: 「空」, 「UNIT_SELLING_PRICE」:32.8 「SUBINVENTORY_CODE」: 「C52」, 「SUBINVENTORY_NAME」: 「C52:南京分倉」, 「SHIPMENT_PRIORITY」: 「空」, 「SHIPPING_INSTRUCTIONS」: 「YTNNJWJR150831006」, 「SHIPMENT_PRIORITY_CODE」: 「空」, 「FREIGHT_CARRIER_CODE」:」遠方物流 「 」CUSTOMER_SITE_CODE「: 」175067「,」 CUSTOMER_PROVINCE 「:」 江蘇省 「 」CUSTOMER_CITY「: 」南京市「, 」城市「: 」南京市「, 」ADDRESS1「: 」金箔路購物廣場「, 」ADDRESS2「:」 江寧區東山鎮金箔路999號(地下一層部分地上」, 「地址3」: 「空」, 「地址4」: 「空」, 「POSTAL_CODE」: 「210000」, 「FIRST_NAME」: 「空」, 「LAST_NAME」: 「樊雨花」, 「COUNTRY_CODE」 :「null」,「PHONE_NUMBER」:「null」,「SITE_COUNTRY_CODE」:「86」,「SITE_PHONE_NUMBER」:「52190235」,「TO_ORGANIZATION_ID」:null,「ATTRIBUTE12」:「null」,「CUSTOMER_CONTACT」:「樊雨花 18951709189 「},{」 DEPT_NAME 「:」 液奶事業部」, 「SALES_AREA」: 「蘇皖」, 「OBU」: 「南京」, 「HEADER_ID」:19453912, 「ORDER_NUMBER」:60212191, 「LINE_ID」:142741574 ,「LINE_NUMBER」:1,「ORDER_SOURCE_ID」:0,「NAME」:「聯機」,「ORDER_TYPE_ID」:1199,「ORDER_TYPE」:「南京分標準銷售訂單」,「REQUEST_DATE」:「2015-08-31 15:02:41.0「,」PRICING_DATE「:」2015-08-31 15:02:30.0「,」ORDERED_DATE「:」2015-08-31 15:02:47.0「,」LAST_UPDATE_DATE「:」 08-31 15:34:25。0「,」PAYMENT_TERM_ID「:1003,」TERMS「:」60, Days「,」SALESREP_ID「:101875802,」SALES_NAME「:」譚豔兵「,」ORG_ID「:179,」CUSTOMER_PRODUCTION_LINE「:」null「,」CUSTOMER_ID「 :3595, 「CUSTOMER_TYPE」: 「R」, 「的organization_ID」:365, 「SHIP_SITE_USE_ID」:175067 「BILL_SITE_USE_ID」:175065 「SHIPPING_METHOD_CODE」: 「汽運 - 汽運直營」, 「CUSTOMER_CLASS_CODE」: 「空」 「CUSTOMER_NUMBER」: 「NJSG0001」, 「CUSTOMER_NAME」: 「蘇果超市有限公司」, 「ORDER_CATEGORY_CODE」: 「階」, 「HEADER_FLOW_STATUS_CODE」: 「BOOKED」, 「LIN_FLOW_STATUS_CODE」: 「AWAITING_SHIPPING」, 「ITEM_NUM」:」 204104001400「,」ORDER_QUANTITY_UOM「:」EA「,」UNIT_OF_MEASURE「:」件「,」ORDERED_QUANTITY「:16,」SCHEDULE_SHIP_DATE「:」2015-08-31 23:59:00.0「,」INVENTORY_ITEM_ID「:2148603, PRICE_LIST_ID 「:11837,」 PRICE_LIST 「:」 南京分公司蘇果超市價格 「 」CURRENCY_CODE「: 」人民幣「, 」CONVERSION_RATE「:空, 」CONVERSION_TYPE_CODE「: 」公司「, 」CONVERSION_RATE_DATE「: 」空「,」 UNIT_SELLING_PRICE 「:42.08,」 SUBINVENTORY_CODE 「:」 C52" , 「SUBINVENTORY_NAME」:「C52 :南京分倉」, 「SHIPMENT_PRIORITY」: 「空」, 「SHIPPING_INSTRUCTIONS」: 「YTNNJWJR150831006」, 「SHIPMENT_PRIORITY_CODE」: 「空」, 「FREIGHT_CARRIER_CODE」: 「遠方物流」, 「CUSTOMER_SITE_CODE」: 「175067」, 「CUSTOMER_PROVINCE」 : 「江蘇省」, 「CUSTOMER_CITY」: 「南京市」, 「城市」: 「南京市」, 「ADDRESS1」: 「金箔路購物廣場」, 「ADDRESS2」:「江寧區東山鎮金箔路999號(地下一層部分地上」, 「地址3」: 「空」, 「地址4」: 「空」, 「POSTAL_CODE」: 「210000」, 「FIRST_NAME」: 「空」, 「LAST_NAME」: 「樊雨花」, 「COUNTRY_CODE」: 「null」,「PHONE_NUMBER」:「null」,「SITE_COUNTRY_CODE」:「86」,「SITE_PHONE_NUMBER」:「52190235」,「TO_ORGANIZATION_ID」:null,「ATTRIBUTE12」:「null」,「CUSTOMER_CONTACT」:「樊雨花 18951709189 「},{」 DEPT_NAME 「:」 液奶事業部」, 「SALES_AREA」: 「蘇皖」, 「OBU」: 「南京」, 「HEADER_ID」:19453912, 「ORDER_NUMBER」:60212191, 「LINE_ID」:142741585, 「LINE_NUMBER」:2,「ORDER_SOURCE_ID」:0,「NAME」:「聯機」,「ORDER_TYPE_ID」:1199,「ORDER_TYPE」:「南京分標準銷售訂單」,「REQUEST_DATE」:「2015-08-31 15:02:41.0「,」PRICING_DATE「:」2015-08-31 15:02:30.0「,」ORDERED_DATE「:」2015-08-31 15:02:50.0「,」LAST_UPDATE_DATE「:」2015 -08-31 15:34:26.0「,」PAYMENT_TERM_ID「:1003,」TERMS「:」60 Days「,」SALESREP_ID「:101875802,」SALES_NAME「:」譚豔兵「,」ORG_ID「:179,」CUSTOMER_PRODUCTION_LINE 「:」 空 「 」CUSTOMER_ID「:3595, 」CUSTOMER_TYPE「: 」R「, 」的organization_ID「:365, 」SHIP_SITE_USE_ID「:175067 」BILL_SITE_USE_ID「:175065 」SHIPPING_METHOD_CODE「:」 汽運 - 汽運直營」, 「CUSTOMER_CLASS_CODE」: 「空」, 「CUSTOMER_NUMBER」: 「NJSG0001」, 「CUSTOMER_NAME」: 「蘇果超市有限公司」, 「ORDER_CATEGORY_CODE」: 「階」, 「HEADER_FLOW_STATUS_CODE」: 「BOOKED」, 「LIN_FLOW_STATUS_CODE」: 「AWAITING_SHIPPING」,「ITEM_NUM」:「204006000802」,「ORDER_QUANTITY_UOM」:「EA」,「UNIT_OF_MEASURE」:「件」,「ORDERED_QUANTITY」:4,「SCHEDULE_SHIP_DATE」:「2015-08-31 23:59:00」 「INVENTORY_ITEM_ID」:4526768 「PRICE_LIST_ID」:11837, 「PRICE_LIST」:「南京分公司蘇果市價格 「 」CURRENCY_CODE「: 」人民幣「, 」CONVERSION_RATE「:空, 」CONVERSION_TYPE_CODE「: 」公司「, 」CONVERSION_RATE_DATE「: 」空「, 」UNIT_SELLING_PRICE「:48, 」SUBINVENTORY_CODE「: 」C52「,」 SUBINVENTORY_NAME 「:」 C52:南京分倉」, 「SHIPMENT_PRIORITY」: 「空」, 「SHIPPING_INSTRUCTIONS」: 「YTNNJWJR150831006」, 「SHIPMENT_PRIORITY_CODE」: 「空」, 「FREIGHT_CARRIER_CODE」: 「遠方物流」, 「CUSTOMER_SITE_CODE」: 「175067」 「CUSTOMER_PROVINCE」: 「江蘇省」, 「CUSTOMER_CITY」: 「南京市」, 「城市」: 「南京市」, 「ADDRESS1」: 「金箔路購物廣場」, 「ADDRESS2」:「江寧區東山鎮金箔路999號(地下一層部分地上」, 「地址3」: 「空」, 「地址4」: 「空」, 「POSTAL_CODE」: 「210000」, 「FIRST_NAME」: 「空」, 「LAST_NAME」: 「樊雨花」, 「COUNTRY_CODE」: 「空」, 「PHONE_NUMBER」: 「空」, 「SITE_COUNTRY_CODE」: 「86」, 「SITE_PHONE_NUMBER」: 「52190235」, 「TO_ORGANIZATION_ID」:空, 「ATTRIBUTE12」: 「空」, 「CUSTOMER_CONTACT」: 「樊雨花 18951709189」}]}; line:1,column:3] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1486) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:518 ) 在 com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:447) 在 com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddName(ReaderBasedJsonParser.java:1340) 在 com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:618) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:136) 在 com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3560) 在 com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2576) 在OrderInfoClient.main(OrderInfoClient。java:32)

+0

請添加您的Java類不工作 –

+0

請參閱這裏http://www.jsonschema2pojo.org –

回答

0

當我在java類中獲得JSON響應時,它將帶有如下所示的雙引號。

{ CUX_OE_ORDER_INFO_V:[ {"DEPT_NAME":"液奶事業部" .... 

,我下面

response=response.replace("CUX_OE_ORDER_INFO_V", "\"CUX_OE_ORDER_INFO_V\""); 

現在看起來這種替換下面

{「** CUX_OE_ORDER_INFO_V 」**:[{「 DEPT_NAME」:「液奶事業部「,

當我加雙引號後,它是能夠轉換爲列表..