首页 > 其他分享 >Jackson工具类

Jackson工具类

时间:2022-11-09 15:44:44浏览次数:46  
标签:om jackson readValue databind Jackson 工具 com fasterxml

import java.io.IOException;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public final class JacksonUtils {

    private static final ObjectMapper om = new ObjectMapper();

    static {
        om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        om.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
        om.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    }

    private JacksonUtils() {
    }

    /**
     * (non-Javadoc)
     * @see com.fasterxml.jackson.databind.ObjectMapper#readTree(java.lang.String)
     */
    public static JsonNode readTree(String content) throws JsonProcessingException {
        return om.readTree(content);
    }

    /**
     * @see com.fasterxml.jackson.databind.ObjectMapper#readValue(byte[], java.lang.Class<T>)
     */
    public static <T> T readValue(byte[] src, Class<T> valueType) {
        try {
            return om.readValue(src, valueType);
        } catch (IOException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

    /**
     * @see com.fasterxml.jackson.databind.ObjectMapper#readValue(java.lang.String, java.lang.Class<T>)
     */
    public static <T> T readValue(String content, Class<T> valueType) {
        try {
            return om.readValue(content, valueType);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

    /**
     * @see com.fasterxml.jackson.databind.ObjectMapper#readValue(java.lang.String, TypeReference<T>)
     */
    public static <T> T readValue(String content, TypeReference<T> valueTypeRef) {
        try {
            return om.readValue(content, valueTypeRef);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

    /**
     * @see com.fasterxml.jackson.databind.ObjectMapper#writeValueAsString(java.lang.Object)
     */
    public static String writeValueAsString(Object value) {
        try {
            return om.writeValueAsString(value);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e.getMessage());
        }
    }

}

标签:om,jackson,readValue,databind,Jackson,工具,com,fasterxml
From: https://www.cnblogs.com/javalouvre/p/16873943.html

相关文章

  • Kubernetes集群管理工具kubectl简介
     概述kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署 命令格式kubectl[command][type][na......
  • Google团队开发的Guava工具包的代码示例
    上一篇​​java代码如何连接Linux虚拟机,还有文件上传下载,等基础命令​​一、项目源地址​​Github链接​​二、String操作2.1Join示例代码@Test//这个包引的是......
  • SQL慢?吐血整理MySQL中Explain分析工具
    前言当我们遇到一条SQL慢的时候,往往需要使用一些性能分析工具,看看这个SQL究竟是为什么慢?那本文就分享MySQL中的一个性能分析神器——​​Explain​​,通过读懂它的结果,我们......
  • QiniuUtils(七牛云存储工具类)
    QiniuUtilspackagecom.itheima.utils;importcom.google.gson.Gson;importcom.qiniu.common.QiniuException;importcom.qiniu.common.Zone;importcom.qiniu.http......
  • 个人投资组合构建01:关键要素和投资工具
    一、搭建投资组合的关键1、控制波动为何要控制波动获得同样收益的情况下,波动越小,投资水平越高2、对投资波动控制对越好,越有可能坚持长期投资管理波动和风险对指标—......
  • 19个免费好用的CSS代码样式生成器工具
    整理编辑| 杨小爱CSS生成器可以帮助每个开发人员的生活变得轻松,提升工作效率,因为它可以立即实现大部分CSS效果,如阴影、边框、按钮颜色/形状等等。在本文中,我将分享19......
  • 在线常用工具
    在线白板:https://excalidraw.com/ 在线MD5加密、解密:https://www.cmd5.com/ https://pmd5.com/?action=getpwd# 在线天气预报:http://www.weather.com.cn/weathe......
  • 前端零配置打包工具 parceljs 体验
    参考https://www.parceljs.cn/getting_started.htmlparceljs中文官网https://www.parceljs.cn/getting_started.htmlParcel1版本的中文文档https://v2.parceljs.cn......
  • 推荐几款实用的思维导图工具
    实用的思维导图工具 1)FreeMind官网地址:​​​https://freemind.en.softonic.com/​​​介绍:FreeMind是一款基于java的免费的脑图(mindmapping)制作与管理软件。支持的平台......
  • appium元素定位工具
    appium做移动端自动化测试,定位元素可用的工具有2种:uiautomatorviewerAppiumInspectorweditor前置条件:已连接真机或手机模拟器,adbdevices有显示连接的手机列表。1.......