Object类型数据转化为json字符串工具类

2023-11-10

Object类型数据转json字符串

package com.xxxxx.emis.base.util;

import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;

/**
 * @author Q
 * @Date 2021/4/19 16:54
 */
 
public class JsonFilterSerializer {
    private static final String DYNC_INCLUDE = "DYNC_INCLUDE";//包含的标识
    private static final String DYNC_EXCLUDE = "DYNC_EXCLUDE";//过滤的标识

    private ObjectMapper mapper = new ObjectMapper();

    @JsonFilter(DYNC_EXCLUDE)
    interface DynamicExclude {
    }

    @JsonFilter(DYNC_INCLUDE)
    interface DynamicInclude {
    }

    /**
     *
     * @param include 包含
     * @param exclude 过滤
     */
    public void filter(Class<?> clazz, String include, String exclude) {
        if (clazz == null) return;
        if (include != null && include.length() > 0) {
            mapper.setFilterProvider(new SimpleFilterProvider()
                    .addFilter(DYNC_INCLUDE, SimpleBeanPropertyFilter.filterOutAllExcept(include.split(","))));//多个字段用,分割开
            mapper.addMixIn(clazz, DynamicInclude.class);
        } else if (exclude != null && exclude.length() > 0) {
            mapper.setFilterProvider(new SimpleFilterProvider()
                    .addFilter(DYNC_EXCLUDE, SimpleBeanPropertyFilter.serializeAllExcept(exclude.split(","))));
            mapper.addMixIn(clazz, DynamicExclude.class);
        }
    }

    public String toJson(Object object) throws JsonProcessingException {
        return mapper.writeValueAsString(object);
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Object类型数据转化为json字符串工具类 的相关文章

  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • TreeMap 删除所有大于某个键的键

    在项目中 我需要删除键值大于某个键的所有对象 键类型为Date 如果重要的话 据我所知TreeMapJava中实现的是红黑树 它是一种二叉搜索树 所以我应该得到O n 删除子树时 但除了制作尾部视图并一一删除之外 我找不到任何方法可以做到这
  • java.lang.ClassNotFoundException:javax.mail.MessagingException

    我想使用 eclipse 将电子邮件从我的 gmail 帐户发送到另一个邮件帐户 我使用 apache tomcat 7 0 34 作为我的 Web 服务器 并使用端口 8080 作为 apache 服务器 HTTP 1 1 并使用 JRE
  • eclipse行号状态行贡献项是如何实现的?

    我需要更新状态行编辑器特定的信息 我已经有了自己的实现 但我想看看 eclipse 贡献项是如何实现的 它显示状态行中的行号 列位置 谁能指点一下 哪里可以找到源代码 提前致谢 亚历克斯 G 我一直在研究它 它非常复杂 我不确定我是否了解完
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • Thymeleaf 3 Spring 5 映射加载字符串而不是 HTML

    我正在尝试将 Spring 5 和 Thymeleaf 3 一起配置 我正在 Eclipse 上工作 我使用 全新安装 构建并使用 springboot run 运行应用程序 我已经设置了一个控制器和几个模板 但 Thymeleaf 似乎找
  • 什么是抽象类? [复制]

    这个问题在这里已经有答案了 当我了解抽象类时 我说 WT H 问题 创建一个无法实例化的类有什么意义呢 为什么有人想要这样的课程 什么情况下需要抽象类 如果你明白我的意思 最常见的是用作基类或接口 某些语言有单独的interface构建 有
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • Java Applet 中的 Apache FOP - 未找到数据的 ImagePreloader

    我正在研究成熟商业产品中的一个问题 简而言之 我们使用 Apache POI 库的一部分来读取 Word DOC 或 DOCX 文件 并将其转换为 XSL FO 以便我们可以进行标记替换 然后 我们使用嵌入到 Java 程序中的 FOP 将
  • Akka 与现有 java 项目集成的示例

    如果我已经有现有的javaWeb 应用程序使用spring and servlet容器 将 Akka 集成到其中的正确方法是什么 就像我将会有Actor1 and Actor2互相沟通的 开始使用这些演员的切入点是什么 例如 1 把它放在那
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • 为什么\0在java中不同系统中打印不同的输出

    下面的代码在不同的系统中打印不同的输出 String s hello vsrd replace 0 System out println s 当我在我的系统中尝试时 Linux Ubuntu Netbeans 7 1 它打印 When I
  • 列表过滤器内的 Java 8 lambda 列表

    示例 JSON id 1 products id 333 status Active id 222 status Inactive id 111 status Active id 2 products id 6 status Active
  • 在java中以原子方式获取多个锁

    我有以下代码 注意 为了可读性 我尽可能简化了代码 如果我忘记了任何关键部分 请告诉我 public class User private Relations relations public User relations new Rela
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • Java 正则表达式中的逻辑 AND

    是否可以在 Java Regex 中实现逻辑 AND 如果答案是肯定的 那么如何实现呢 正则表达式中的逻辑 AND 由一系列堆叠的先行断言组成 例如 foo bar glarch 将匹配包含所有三个 foo bar 和 glarch 的任何
  • MiniDFSCluster UnsatisfiedLinkError org.apache.hadoop.io.nativeio.NativeIO$Windows.access0

    做时 new MiniDFSCluster Builder config build 我得到这个异常 java lang UnsatisfiedLinkError org apache hadoop io nativeio NativeIO

随机推荐

  • 组件封装

    基本用法 在使用 vue cli 创建的项目中 组件的创建非常方便 只需要新建一个 vue 文件 然后在 template 中写好 HTML 代码 一个简单的组件就完成了 一个完整的组件 除了 template 以外 还有 script和
  • Cannot find module ‘@/views/test/index.vue‘ or its corresponding type declarations.ts(2307)的原因

    在Vue的TypeScript项目中 使用const test gt import views test index vue 语法动态导入模块时 可能会出现类型声明文件找不到的错误 这是由于TypeScript无法正确解析动态导入的路径而导
  • 五线舵机驱动程序_16路舵机驱动板程序使用说明

    用Arduino类库驱动舵机并不是一件难事 如果需要驱动很多电机 就需要要占用更多的引脚 也会影响到Arduino的处理能力 专门的舵机驱动板很好的解决了这个问题 此舵机驱动板使用PCA9685芯片 是16通道12bi tPWM舵机驱动 用
  • 2020年“泰迪杯”数据分析职业技能大赛A 题优秀报告:教育平台的线上课程智能推荐策略

    摘要 近年来 随着互联网与通信技术的高速发展 学习资源共享与建设呈现出新的发展趋势 多样化的线上教育平台如雨后春笋般争相涌入大众视野 尤其是在今年年初 受新冠肺炎疫情的冲击下 学生返校进行线下授课收到严重阻碍 由此 网络线上平台由此成为 互
  • 字节跳动精准测试实践,SmartEye背后的设计逻辑

    简介 在移动互联网高度发展下 移动APP趋近于大型化 功能也趋近于复杂化 诸如各种国民级应用 功能 玩法等迭代不停 其背后对应的研发协作团队也非常庞大 在此种场景下 依靠人力堆叠去保障产品质量 并非最优解 在软件规模达到某个临界点之后 问题
  • [论文] LIMA: Less Is More for Alignment

    文章目录 概要内容 关键方法 高质量样本获取 模型评估方法 结论 思考 Meta新模型LIMA 基于LLaMa 65B 精选1000个微调样本进行训练 对比GPT 4 Bard DaVinci003 表现出强大的性能 结果表明 大语言模型中
  • 程序员mac开发环境配置

    拿了一台新的macbook pro 作为一个程序员 我把自己的开发环境给贴出来 1 输入法 先把苹果的系统自带的中文输入法 换成自己习惯的搜狗输入法 2 略 3 jdk 7u71 直接下载dmg文件安装 4 git 在terminal中 直
  • 中国职场女性领导者专题访谈

    导读 书写中国职场女性领导者并不容易 一不小心就会落入成功学后验主义窠臼 狭隘单一的价值评判 亦或是隐形性别偏见 但我们还是坚定地提笔 因为每一位女性领导者的成长历程 无论高光时刻还是黑暗片段 都会通过文字与读者产生连接 为其带来启示 而我
  • 服务器计算机性能测试,服务器平台计算性能工具Linpack服务器性能测试利器_一_.pdf...

    服务器平台计算性能工具Linpack服务器性能测试利器 一 pdf 产 品 技 术 服务器平台 文 赵吉志 计算性能工具Linpack 服务器性能测试利器 一 计算机硬件的不断升级带来了系统处理性能的持续提高 如何对平台的性能作出正确的判断
  • Linux基础(命令学习) ———从入坑到放弃1.0

    Linux文件 一 系统层次图 Linux文件类型 在Linux中一切都是文件 但文件都得有类型 shell 对命令的解释 cd pwd 查看当前的工作目录 Is 列表显示目录内容 alias 设置别名 du 统计目录及文件空间占用情况 m
  • SpringBoot的基本使用

    SpringBoot 目录 SpringBoot 一 SpringBoot简介 1 什么是SpringBoot 2 SpringBoot的优点 3 SpringBoot的缺点 二 SpringBoot的创建方式 1 基于官网的Initial
  • 【vue运行报错】There are multiple modules with names... 报错原因和解决办法

    项目场景 There are multiple modules with names that only differ in casing 项目运行时候报错如下 There are multiple modules with names t
  • Python中的__init__.py的高级用法

    刚开始学习编程 我们很少会关注这个文件 只知道一个目录中存在该文件 该目录就是一个package 不存在就是普通的目录 普通的目录在导入包时 pycharm并不会智能提示 Python中每新建一个package都会默认生成一个 init p
  • (一)app自动化测试环境搭建(mac+ios+airtest )

    环境搭建的效果如下 IOS手机屏幕显示Automation Running 电脑端airtest设备窗口上可以看到手机屏幕 以下是在mac电脑的搭建过程 只演示连接IOS真机部分 安卓机较为简单暂时省略 1 APP自动化测试工具介绍 Air
  • 半监督目标检测

    有监督目标检测 拥有大规模带标签的数据 包括完整的实例级别的标注 即包含坐标和类别信息 弱监督目标检测 数据集中的标注仅包含类别信息 不包含坐标信息 如图一 b 所示 弱半监督目标检测 数据集中拥有部分实例级别的标注 大量弱标注数据 模型希
  • MCU刷写

    1 个人电脑安装python2 7 2 用调试线连接个人电脑与控制器 3 控制器断电 数秒后上电 4 bootload2 py update s19两个文件放在一个文件夹内 5 ubuntu系统下 在当前文件夹下打开终端 输入 chmod
  • GD32F103使用DMA方式实现ADC0数据循环采集

    选择合适的DMA通道 ADC0使用ch0 brief configure the DMA peripheral param in none param out none retval none void dma config void AD
  • ST MCU Finder:MCU/MPU选型神器

    点击上方蓝字 关注我们 1 ST MCU Finder简介 ST MCU Finder 是 ST MCU生态系统中的选型工具 也内嵌在STM32CubeMX 和 STM32CubeIDE 中 具有相同的数据基础 可以通过在电脑端安装ST M
  • heartbeat mysql nfs 高可用mysql集群

    一 环境准备 二 拓扑结构 三 安装heartbeat 四 配置NFS服务 五 安装mysql 六 crm 配置资源 一 环境准备 操作系统 centos 6 4 x86 64 最小化安装 如使用yum 安装的方式 centos5 5 安装
  • Object类型数据转化为json字符串工具类

    Object类型数据转json字符串 package com xxxxx emis base util import com fasterxml jackson annotation JsonFilter import com faster