JsonUtils

功能:

  • json2Bean 将JSON序列化为对象
  • bean2Json 将对象序列化为JSON
  • bean2Bytes 将对象序列化为字节流
依赖:

<dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <version>1.9.9</version>
</dependency>
源码:

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.Inclusion;
import org.codehaus.jackson.type.TypeReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author Dotions 2016年4月26日下午5:33:55
 */
public class JsonUtils {
    
    private static Logger logger = LoggerFactory.getLogger(JsonUtils.class);
    
    private static ObjectMapper objectMapper;
    
    //init objectMapper
    static {
        objectMapper = new ObjectMapper();
        objectMapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
        objectMapper.setSerializationInclusion(Inclusion.NON_NULL);
        objectMapper.disable(SerializationConfig.Feature.WRITE_NULL_MAP_VALUES);
    }
    
    public static <T> T json2Bean(String json, Class<T> clazz) throws Exception {
        try {
            return objectMapper.readValue(json, clazz);
        } catch(Exception e) {
            logger.error("convert json to bean failed", e);
            throw e;
        }
    }
    
    /**
     * ex:List<Foo> list = JsonUtils.json2Bean(listJson, new TypeReference<List<Foo>>() {}) ;
     * use to convert Collection
     */
    public static <T> T json2Bean(String json, TypeReference<T> typeReference) {
        try {
            return objectMapper.readValue(json, typeReference);
        } catch (Exception e) {
            logger.error("convert json to bean failed", e);
            return null;
        }
    }
    
    public static String bean2Json(Object bean) throws Exception {
        try {
            return objectMapper.writeValueAsString(bean);
        } catch (Exception e) {
            logger.error("convert bean to json failed", e);
            throw e;
        }
    }
    
    public static byte[] bean2Bytes(Object bean) throws Exception {
        try {
            return objectMapper.writeValueAsBytes(bean);
        } catch (Exception e) {
            logger.error("convert bean to json bytes failed", e);
            throw e;
        }
    }
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容