• java json转换工具类


    在java项目中,通常会用到json类型的转换,常常需要对 json字符串和对象进行相互转换。

    在制作自定义的json转换类之前,先引入以下依赖

    
    
    <!--json相关工具-->
    <dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-guava</artifactId> <!--google-->
    <version>2.5.3</version>
    </dependency>
    <dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-asl</artifactId>
    <version>1.9.13</version>
    </dependency>
    <dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
    </dependency>
    
    

    自定义json工具类的实现:

    
    
    package com.me.util;

    import lombok.extern.slf4j.Slf4j;
    import org.codehaus.jackson.map.DeserializationConfig;
    import org.codehaus.jackson.map.ObjectMapper;
    import org.codehaus.jackson.map.SerializationConfig;
    import org.codehaus.jackson.map.annotate.JsonSerialize;
    import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider;
    import org.codehaus.jackson.type.TypeReference;
    /**
    * json转换
    */
    @Slf4j
    public class JsonMapper {

    private static ObjectMapper objectMapper = new ObjectMapper();
    static {
    // config
    objectMapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
    objectMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS,false);
    objectMapper.setFilters(new SimpleFilterProvider().setFailOnUnknownId(false));
    objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY);
    }

    /**
    * 对象转为json字符串
    * @param src
    * @param <T>
    * @return
    */
    public static <T> String obj2String(T src){
    if(src == null){
    return null;
    }
    try{
    return src instanceof String ? (String) src : objectMapper.writeValueAsString(src);
    } catch (Exception e) {
    log.warn("parse object to String exception",e);
    return null;
    }
    }

    /**
    * json字符串转为对象
    * @param src
    * @param typeReference
    * @param <T>
    * @return
    */
    public static <T> T string2Obj(String src, TypeReference<T> typeReference) {
    if (src == null || typeReference == null) {
    return null;
    }
    try {
    return (T) (typeReference.getType().equals(String.class) ? src : objectMapper.readValue(src, typeReference));
    } catch (Exception e) {
    log.warn("parse String to Object exception, String:{}, TypeReference<T>:{}, error:{}", src, typeReference.getType(), e);
    return null;
    }
    }

    }

    使用:

    JSON串转为list类型

    对象类型转为JSON串

     

  • 相关阅读:
    good source
    走进科学之揭开神秘的零拷贝[z]
    git push 本地项目推送到远程分支[z]
    Hibernate配置(通过注解配置)
    Hibernate配置(外部配置文件方式)
    Oracle数据库中scott用户不存在的解决方法
    找滑动窗口的中位数
    Spring日期格式初始化
    Oracle对表空间无权限
    Oracle中默认创建的表
  • 原文地址:https://www.cnblogs.com/devise/p/9974659.html
Copyright © 2020-2023  润新知