qinchao 3 년 전
부모
커밋
594b5f34cb
1개의 변경된 파일14개의 추가작업 그리고 0개의 파일을 삭제
  1. 14 0
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/JsonMapper.java

+ 14 - 0
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/JsonMapper.java

@@ -1,9 +1,12 @@
 package cn.com.qmth.examcloud.commons.util;
 
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
+import com.fasterxml.jackson.databind.module.SimpleModule;
 import com.fasterxml.jackson.databind.util.JSONPObject;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -61,6 +64,17 @@ public class JsonMapper {
     public JsonMapper(Include include) {
         mapper = new ObjectMapper();
 
+        SimpleModule module = new SimpleModule();
+        module.addDeserializer(String.class, new StdScalarDeserializer<String>(String.class) {
+            @Override
+            public String deserialize(JsonParser jsonParser, DeserializationContext ctx)
+                    throws IOException, JsonProcessingException {
+                // 去掉头尾空格
+                return jsonParser.getValueAsString() != null ? jsonParser.getValueAsString().trim() : null;
+            }
+        });
+        mapper.registerModule(module);
+
         //设置输出时包含属性的风格
         if (include != null) {
             mapper.setSerializationInclusion(include);