有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Jackson的JSON到JAVA对象

在使用Jackson API ObjectMapper类将JSON字符串转换为Java对象时,我遇到了一个问题

有人能帮我把下面的JSON转换成等价的Java对象格式吗

提前谢谢

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。爪哇:

   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: Unexpected character ('C' (code 67)): was expecting double-quote to start field name at [Source: {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":"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":"null","CUSTOMER_NUMBER":"NJSG0001","CUSTOMER_NAME":"苏果超市有限公司","ORDER_CATEGORY_CODE":"ORDER","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":"CNY","CONVERSION_RATE":null,"CONVERSION_TYPE_CODE":"Corporate","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":"南京市","CITY":"南京市","ADDRESS1":"金箔路购物广场","ADDRESS2":"江宁区东山镇金箔路999号(地下一层部分地上","ADDRESS3":"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"},{"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":"2015-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":"null","CUSTOMER_NUMBER":"NJSG0001","CUSTOMER_NAME":"苏果超市有限公司","ORDER_CATEGORY_CODE":"ORDER","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":"CNY","CONVERSION_RATE":null,"CONVERSION_TYPE_CODE":"Corporate","CONVERSION_RATE_DATE":"null","UNIT_SELLING_PRICE":42.08,"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":"南京市","CITY":"南京市","ADDRESS1":"金箔路购物广场","ADDRESS2":"江宁区东山镇金箔路999号(地下一层部分地上","ADDRESS3":"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"},{"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":"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":"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.0","INVENTORY_ITEM_ID":4526768,"PRICE_LIST_ID":11837,"PRICE_LIST":"南京分公司苏果超市价格","CURRENCY_CODE":"CNY","CONVERSION_RATE":null,"CONVERSION_TYPE_CODE":"Corporate","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":"南京市","CITY":"南京市","ADDRESS1":"金箔路购物广场","ADDRESS2":"江宁区东山镇金箔路999号(地下一层部分地上","ADDRESS3":"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"}]}; 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) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:447) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddName(ReaderBasedJsonParser.java:1340) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:618) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:136) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3560) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2576) at OrderInfoClient.main(OrderInfoClient.java:32)


共 (1) 个答案

  1. # 1 楼答案

    当我在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":"液奶事业部",

    在我添加双引号后,它可以转换为列表