diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/ExchangeServiceImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/ExchangeServiceImpl.java index 8aad0adf..7fec996c 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/ExchangeServiceImpl.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/exchange/ExchangeServiceImpl.java @@ -13,25 +13,18 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; +import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; import com.gzzn.omms.msgexchangeapi.exception.ExchangeServiceException; +import com.gzzn.omms.msgexchangeapi.utils.JsonUtil; @Service("exchangeService") public class ExchangeServiceImpl implements IExchangeService { @Override public String xmlstrToJson(String xml) throws ExchangeServiceException { - try { - Map map; - ObjectMapper xmlMapper = new XmlMapper(); - map = xmlMapper.readValue(xml, Map.class); - map.remove("noNamespaceSchemaLocation"); - - ObjectMapper jsonMapper = new ObjectMapper(); - String json = jsonMapper.writer().withDefaultPrettyPrinter().writeValueAsString(map); - return json; - } catch (IOException e) { - throw new ExchangeServiceException(e.getMessage(),e); - } + MSG msg = xmlstrToObject(xml,MSG.class); //转具体消息 + String jsonStr = JsonUtil.getStringWithNoneKey(msg); //转json同时去除null的key + return jsonStr; } //end function @Override diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/utils/JsonUtil.java b/src/main/java/com/gzzn/omms/msgexchangeapi/utils/JsonUtil.java index 56b294c7..57c6f2fa 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/utils/JsonUtil.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/utils/JsonUtil.java @@ -2,6 +2,7 @@ package com.gzzn.omms.msgexchangeapi.utils; import java.io.IOException; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; @@ -22,6 +23,26 @@ public class JsonUtil { } } //end function + /** + * 获取json字符串去除值为null的key + * @param object + * @return json字符串 + */ + public static String getStringWithNoneKey(Object object) + { + try { + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + + ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter(); + java.lang.String jsonStr; + jsonStr = ow.writeValueAsString(object); + return jsonStr; + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } //end function + public static T getObject(String str,Class valueType) throws JsonParseException, JsonMappingException, IOException {