2017-04-10 1 views
-3

Jackson API ObjectMapper 클래스를 사용하여 JSON 문자열을 Java 오브젝트로 변환하는 중 문제점이 있습니다.JSON To Jackson 오브젝트 by Jackson

누군가 나를 JSON 아래로 변환하는 것을 도와 줄 수있는 Java Object 형식이 이에 해당합니다.

미리 감사드립니다.

JSON 문자열 :

{ 

    "CUX_OE_ORDER_INFO_V": [ 

    { 

     "CITY": "南京市", 

     "ADDRESS1": "金箔路购物广场", 

     "ADDRESS2": "江宁区东山镇金箔路999号(地下一层部分地上", 

     }, 

    { 

     "CITY": "南京市", 

     "ADDRESS1": "金箔路购物广场", 

     "ADDRESS2": "江宁区东山镇金箔路999号(地下一层部分地上", 

    }, 

    { 

     "CITY": "南京市", 

     "ADDRESS1": "金箔路购物广场", 

     "ADDRESS2": "江宁区东山镇金箔路999号(地下一层部分地上", 

    } 

    ] 

} 

자바 클래스 :

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'(코드 67)) : 필드 이름을 시작할 때 큰 따옴표가 필요합니다. [출처 : {{ "DEPT_NAME": "液 奶OBD ": 19453912,"ORDER_NUMBER ": 60212191,"LINE_ID ": 142741593,"LINE_NUMBER ": 3,"ORDER_SOURCE_ID ": 0,"SALES_AREA ","SALES_AREA " , "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 " "SALESREP_ID": 101875802, "SALES_NAME": "谭艳兵", "ORG_ID": 179, "CUSTOMER_PRODUCTION_LINE": "null", "CUSTOMER_ID": 3595, "PAYMENT_TERM_ID": 1003, "TERMS" CUSTOMER_TY PE ":"R ","ORGANIZATION_ID ": 365,"SHIP_SITE_USE_ID ": 175067,"BILL_SITE_USE_ID ": 175065,"SHIPPING_METHOD_CODE ":"자동차 운전 ","CUSTOMER_CLASS_CODE ":"null ","CUSTOMER_NUMBER " : "주문서", "HEADER_FLOW_STATUS_CODE": "예약 됨", "LIN_FLOW_STATUS_CODE": "AWAITING_SHIPPING", "ITEM_NUM": "204104001900", "NJSG0001", "CUSTOMER_NAME" 30, "SCHEDULE_SHIP_DATE": "2015-08-31 23 : 59 : 00.0", "INVENTORY_ITEM_ID": 4696613, "PRICE_LIST_ID": 11837 , "PRICE_LIST": "CURRENCY_CODE": "CNY", "CONVERSION_RATE": null, "CONVERSION_TYPE_CODE": "회사", "CONVERSION_RATE_DATE": "null", "UNIT_SELLING_PRICE": 32.8 "SUBINVENTORY_CODE": "C52", "SUBINVENTORY_NAME": "C52 : 南京 分 仓", "SHIPMENT_PRIORITY": "null", "SHIPPING_INSTRUCTIONS": "YTNNJWJR150831006", "SHIPMENT_PRIORITY_CODE": "null", "FREIGHT_CARRIER_CODE"远方 物流 ","CUSTOMER_SITE_CODE ":"175067 ","CUSTOMER_PROVINCE ":"江苏省 ","CUSTOMER_CITY ":"南京市 ","시 ":"南京市 ","ADDRESS1 ":"金箔 路 购物 广场 ","ADDRESS2 ":"江宁 区 东山镇 金箔 路 999 号주소 ","ADDRESS3 ":"null ","ADDRESS4 ":"null ","POSTAL_CODE ":"210000 ","FIRST_NAME ":"null ","LAST_NAME ":"銘 雨花 ","COUNTRY_CODE " : "null", "PHONE_NUMBER": "null", "SITE_PARAMETER": " 19453912, "ORDER_NUMBER": 60212191, "LINE_ID": 142741574 "18951709189"}, { "DEPT_NAME": "SALES_AREA": "苏皖", "OBU": "남경", "HEADER_ID" , "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 ":"2015- 08-31 15:34:25.0 ","PAYMENT_TERM_ID ": 1003,"TERMS ":"60 일 ","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": "null" , "CUSTOMER_NUMBER": "NJSG0001", "CUSTOMER_NAME": "苏 果 超市 有限公司", "ORDER_CATEGORY_CODE": "ORDER", "HEADER_FLOW_STATUS_CODE": "예약 됨", "LIN_FLOW_STATUS_CODE": "AWAITING_SHIPPING", "ITEM_NUM" ORDERED_QUANTITY ": 16,"SCHEDULE_SHIP_DATE ":"2015-08-31 23 : 59 : 00.0 ","INVENTORY_ITEM_ID ": 2148603,"204104001400 ","ORDER_QUANTITY_UOM ":"EA ","UNIT_OF_MEASURE " PRICE_LIST_ID ": 11837,"PRICE_LIST ":"CURRENCY_CODE ":"CNY ","CONVERSION_RATE ": null,"CONVERSION_TYPE_CODE ":"회사 ","CONVERSION_RATE_DATE ":"null " UNIT_SELLING_PRICE ": 42.08,"SUBINVENTORY_CODE ":"C52 ","SUBINVENTORY_NAME ":"C52 : "null", "SHIPPING_INSTRUCTIONS": "YTNNJWJR150831006", "SHIPMENT_PRIORITY_CODE": "null", "FREIGHT_CARRIER_CODE": "远方 物流", "CUSTOMER_SITE_CODE": "175067", "CUSTOMER_PROVINCE" : "江苏 省", "CUSTOMER_CITY": "南京市", "도시": "南京市", "ADDRESS1": "金箔 路 购物 广场", "ADDRESS2": "江宁 区 东山镇 金箔 路 999 号"null", "ADDRESS4": "null", "POSTAL_CODE": "210000", "FIRST_NAME": "null", "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 "OBEP", "OBU": "南京", "HEADER_ID": 19453912, "ORDER_NUMBER": 60212191, "LINE_ID": 142741585, "{DEPT_NAME" "LINE_NUMBER": 2, "ORDER_SOURCE_ID": 0, "NAME": "联机", "ORDER_TYPE_ID": 1199, "ORDER_TYPE": "REQUEST_DATE": "2015-08-31"2015-08-31 15 : 02 : 50.0", "LAST_UPDATE_DATE": "2015-08-31 15 : 02 : 30.0", "ORDERED_DATE": 2015-08-31: 02 : 41.0 ","PRICING_DATE " -08-31 15 : 34 : 26.0 ","PAYMENT_TERM_ID ": 1003,"TERMS ":"60 일 ","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 ":"null ","CUSTOMER_NUMBER ":"NJSG0001 ","CUSTOMER_NAME ":"苏果 超市 有限公司 ","ORDER_CATEGORY_CODE ":"주문 ","HEADER_FLOW_STATUS_CODE ":"예약 됨 ","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.0" , "INVENTORY_ITEM_ID": 4526768, "PRICE_LIST_ID": 11837, "PRICE_LIST": "남경 分公司 苏 果CURRENCY_CODE ":"CNY ","CONVERSION_RATE ": null,"CONVERSION_TYPE_CODE ":"회사 ","CONVERSION_RATE_DATE ":"null ","UNIT_SELLING_PRICE ": 48,"SUBINVENTORY_CODE ":"C52 ","SUBINVENTORY_NAME ":"C52 : 南京 分 仓 ","SHIPMENT_PRIORITY ":"null ","SHIPPING_INSTRUCTIONS ":"YTNNJWJR150831006 ","SHIPMENT_PRIORITY_CODE ":"null ","FREIGHT_CARRIER_CODE ":"远方 物流 ","CUSTOMER_SITE_CODE ":"175067 " , "CUSTOMER_PROVINCE": "江苏 省", "CUSTOMER_CITY": "南京市", "도시": "南京市", "ADDRESS1": "金箔 路 购物 广场", "ADDRESS2": "江宁 区 东山镇 金 盤 路"null", "ADDRESS4": "null", "POSTAL_CODE": "210000", "FIRST_NAME": "null", "LAST_NAME": "銘 雨花", 999 号 (地下 一 层 部分 地上 ","ADDRESS3 " "COUNTRY_CODE": "null", "PHONE_NUMBER": "null", "SITE_COUNTRY_CODE": "86", "SITE_PHONE_NUMBER": "52190235", "TO_ORGANIZATION_ID": null, "ATTRIBUTE12": "null", "CUSTOMER_CONTACT" "樊 雨花 18951709189"}]}; 행 1, 열 3] com.fasterxml.jackson.core.JsonParser._constructError (JsonParser.java:1486)에서 com.fasterxml.jackson.core.base.ParserMinimalBase._reportError에서 (ParserMinimalBase.java:518 com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddName (ReaderBasedJsonParser.java:1340에서 com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar (ParserMinimalBase.java:447 AT) ) )에서 에서 com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize (BeanDeserializer.java:136)에서 (ReaderBasedJsonParser.java:618) 17,451,515,com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose OrderInfoClient.main에서 com.fasterxml.jackson.databind.ObjectMapper.readValue (ObjectMapper.java:2576)에서 (ObjectMapper.java:3560) (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": "液奶 事业部 ",

큰 따옴표를 추가하면 목록으로 변환 할 수 있습니다.