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 楼答案
当我在java类中得到JSON响应时,它带有双引号,如下所示
我用下面的替换这个
现在它看起来像下面
在我添加双引号后,它可以转换为列表