zoukankan      html  css  js  c++  java
  • 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串

     

  • 相关阅读:
    POJ 1680 Fork() Makes Trouble
    课堂改进意见
    梦断代码 读后感3
    梦断代码 读后感2
    找一问题
    软件评价——搜狗输入法
    《梦断代码》读后感1
    站立会议第十天
    站立会议第九天
    站立会议第八天
  • 原文地址:https://www.cnblogs.com/devise/p/9974659.html
Copyright © 2011-2022 走看看