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串

     

  • 相关阅读:
    神经网络学习之----单层感知器
    神经网络学习之----神经网络发展史
    神经网络学习之----神经网络概述
    C语言几种常见的字符串输入
    基于单链表实现集合的交集、并集、差集的运算
    关于单链表的一些基本操作
    输入20个整数存放到一个单向链表中,并顺序逆序输出
    《你的灯亮着吗》阅读笔记
    场景调研
    站立会议总结09
  • 原文地址:https://www.cnblogs.com/devise/p/9974659.html
Copyright © 2011-2022 走看看