sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

ObjectMapper的用法 工具类

首先在pom.xml引入

<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.3</version>
        </dependency>

 

定义JsonMapper工具类

  1. public class JsonMapper {
  2. private static ObjectMapper objectMapper = new ObjectMapper();
  3. static {
  4. //config
  5. objectMapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);//设置在反序列化时忽略在JSON字符串中存在,而在Java中不存在的属性
  6. objectMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);//如果是空对象的时候,不抛异常
  7. objectMapper.setFilters(new SimpleFilterProvider().setFailOnUnknownId(false));
  8. objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY);//属性为null的转换
  9. objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
  10. }
  11. /**
  12. * 对象转String
  13. * @param src
  14. * @param <T>
  15. * @return
  16. */
  17. public static <T> String obj2String(T src){
  18. if (null == src){
  19. return null;
  20. }
  21. try {
  22. return src instanceof String ? (String) src:objectMapper.writeValueAsString(src);
  23. } catch (Exception e) {
  24. return null;
  25. }
  26. }
  27. public static <T> T string2Obj(String src, TypeReference<T> typeReference){
  28. if(null == src || null == typeReference){
  29. return null;
  30. }
  31. try {
  32. return (T) (typeReference.getType().equals(String.class) ? src : objectMapper.readValue(src, typeReference));
  33. } catch (Exception e){
  34. return null;
  35. }
  36. }
  37. }

测试类:

  1. public static void main(String[] args) {
  2. SysAcl acl = SysAcl.builder().id(1).name("测试").remark("ceshi").build();
  3. String a = JsonMapper.obj2String(acl);
  4. System.out.println(a);
  5. SysAcl sysAcl = JsonMapper.string2Obj(a, new TypeReference<SysAcl>() {});
  6. System.out.println(sysAcl.toString());
  7. }

 

原文链接:https://blog.csdn.net/java_chegnxuyuan/article/details/100838069
posted on 2024-01-17 11:28  sunny123456  阅读(231)  评论(0编辑  收藏  举报