Bladeren bron

ObjectMapper一定要从上下文中获取,才能包含定制的jackson规则。

yucheng 3 jaren geleden
bovenliggende
commit
e8f0483096

+ 9 - 9
dc-business/dc-digital/src/main/java/com/persagy/dc/parser/service/impl/AbstractInfoDataParser.java

@@ -27,7 +27,7 @@ import java.util.List;
 @Slf4j
 public abstract class AbstractInfoDataParser implements IInfoDataParser {
 
-    private static ObjectMapper objectMapper = new ObjectMapper();
+    private static ObjectMapper objectMapper;
 
     /**
      * 接口实现
@@ -86,7 +86,7 @@ public abstract class AbstractInfoDataParser implements IInfoDataParser {
         if(value == null || JsonNodeType.NULL == value.getNodeType()) {
             return null;
         }
-        return objectMapper.readValue(value.toString(), clazz);
+        return getObjectMapper().readValue(value.toString(), clazz);
     }
 
     /**
@@ -100,8 +100,8 @@ public abstract class AbstractInfoDataParser implements IInfoDataParser {
         if(value == null || JsonNodeType.NULL == value.getNodeType()) {
             return null;
         }
-        JavaType javaType = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, clazz);
-        return objectMapper.readValue(value.toString(), javaType);
+        JavaType javaType = getObjectMapper().getTypeFactory().constructParametricType(ArrayList.class, clazz);
+        return getObjectMapper().readValue(value.toString(), javaType);
     }
 
     /**
@@ -115,8 +115,8 @@ public abstract class AbstractInfoDataParser implements IInfoDataParser {
         if(value == null || JsonNodeType.NULL == value.getNodeType()) {
             return null;
         }
-        JavaType javaType = objectMapper.getTypeFactory().constructParametricType(RegionVO.class, clazz);
-        RegionVO<T> region = objectMapper.readValue(value.toString(), javaType);
+        JavaType javaType = getObjectMapper().getTypeFactory().constructParametricType(RegionVO.class, clazz);
+        RegionVO<T> region = getObjectMapper().readValue(value.toString(), javaType);
         return region == null ? null:region.toRegionValue();
     }
 
@@ -131,9 +131,9 @@ public abstract class AbstractInfoDataParser implements IInfoDataParser {
         if(value == null || JsonNodeType.NULL == value.getNodeType()) {
             return null;
         }
-        JavaType javaType = objectMapper.getTypeFactory().constructParametricType(RegionVO.class, clazz);
-        javaType = objectMapper.getTypeFactory().constructParametricType(List.class, javaType);
-        List<RegionVO<T>> regionList = objectMapper.readValue(value.toString(), javaType);
+        JavaType javaType = getObjectMapper().getTypeFactory().constructParametricType(RegionVO.class, clazz);
+        javaType = getObjectMapper().getTypeFactory().constructParametricType(List.class, javaType);
+        List<RegionVO<T>> regionList = getObjectMapper().readValue(value.toString(), javaType);
         return RegionVO.toRegionValueList(regionList);
     }