Java Json 数据下划线与驼峰格式进行相互转换

2023-11-19

概述

今天遇见一个需求,需要对json数据进行下划线与驼峰格式之间进行转换,在Fastjson、Jackson、Gson都提供了转换的方式,在这里进行一下列举。

User类:

public class User {

    private String nameInfo;

    private String ageInfo;

    public String getNameInfo() {
        return nameInfo;
    }

    public void setNameInfo(String nameInfo) {
        this.nameInfo = nameInfo;
    }

    public String getAgeInfo() {
        return ageInfo;
    }

    public void setAgeInfo(String ageInfo) {
        this.ageInfo = ageInfo;
    }
}

Fastjson

// 生产环境中,config要做singleton处理,要不然会存在性能问题
User user = new User();
user.setNameInfo("coder");
user.setAgeInfo("28");
SerializeConfig config = new SerializeConfig();
config.propertyNamingStrategy = PropertyNamingStrategy.SnakeCase;
String json = JSON.toJSONString(user, config);
Assert.assertEquals("{\"age_info\":\"28\",\"name_info\":\"coder\"}", json);

Gson

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
Gson gson = gsonBuilder.create();

User user = new User();
user.setName("coder");
user.setAge(28);

String json = gson.toJson(user);
Assert.assertEquals("{\"age_info\":\"28\",\"name_info\":\"coder\"}", json);

Jackson

User user = new User();
user.setNameInfo("coder");
user.setAgeInfo("28");
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(com.fasterxml.jackson.databind.PropertyNamingStrategy.SNAKE_CASE);
String json = mapper.writeValueAsString(user);
Assert.assertEquals("{\"name_info\":\"coder\",\"age_info\":\"28\"}", json);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Json 数据下划线与驼峰格式进行相互转换 的相关文章

  • Java接口以及static和final关键字

    Java接口以及static和final关键字 一 static 二 final 三 让final元素可以初始化 不用固定赋值 四 接口 五 抽象方法 六 接口能够创建对象吗 匿名内部类 七 另一实例 开锁 一 static static代
  • Swagger3 注解使用(Open API 3.0)

    文章目录 前言 一 swagger 3 的使用 Swagger SpringFox 3 0 相关特性 SpringDoc 二 从 spring fox 迁移到 springdoc 三 使用 swagger3 注解代替 swagger2 的
  • mac上使用IntelliJ IDEA运行项目

    一 Mac OSX系统下安装Tomcat 1 下载Tomcat官方下载地址 2 解压Tomcat到目录 Library 中 并把文件夹名由 apache tomcat 6 0 16 改为 Tomcat 3 打开 应用程序 Applicati
  • 字符“&”在XML文件中需要被转义

    今天弄Mybatis的配置文件时 因为这样一条语句
  • 什么是多态?对于多态的理解....

    什么是多态 我们都知道面向对象有四个基本特性 抽象 封装 继承 多态 概括可以理解为 抽象 封装 继承 是多态的基础 多态是抽象 封装 继承的表现 多态 是Java中非常重要的一部分 简单理解 不同类的 对象 对同一消息 做出了不同的响应就
  • 【一】第一个java程序详解

    第一个java程序详解 一 前言 二 创建并编写java源代码的文件 创建java源代码文件 更改文件后缀 java代码的结构 三 编译执行 编译 执行 四 总结 五 附 java关键字 一 前言 通过之前上一节 开篇 Java语言介绍及环
  • 使用jemeter进行压力测试关注的指标

    一 压测设置 线程数 并发数量 能跑多少量 具体说是一次存在多少用户同时访问 Rame Up Period in seconds 表示JMeter每隔多少秒发动并发 理解成准备时长 设置虚拟用户数需要多长时间全部启动 如果线程数是20 准备
  • FullGC问题分析

    一 常见的FullGC场景分析 频繁的大对象 大对象直接被分配到老年代 系统高负载运行 请求量很大 jvm来不及将对象转移到老年代 直接到老年代分配对象 系统内存泄漏 导致对象长时间在老年代 得不到释放 二 产生FullGC的原因 Syst
  • java中的file.encoding属性到底由什么决定?

    首先先上一段代码 public class PropertiesTest public static void main String args System out println file encoding System getProp
  • java Map集合

    目录 一 介绍 二 HashMap 三 TreeMap 四 LinkedHashMap 一 介绍 Java中的Map是一种键值对的集合数据类型 用于存储无序的 不重复的键值对 它提供了快速的查找和访问功能 可以根据键来获取值 常见的Map实
  • javaSE进阶1之static用法

    JavaSE进阶 静态关键字 static static关键字的作用 成员变量分类 静态成员变量 实例成员变量 static修饰成员变量内存原理 static 修饰成员方法的基本用法 成员方法的分类 static修饰成员方法内存原理 sta
  • Java中的IO流如何理解——精简

    目录 引言 缓冲流 字节缓冲流 字符缓冲流 转换流 字符输入转换流 字符输出转换流 序列化和反序列化 对象序列化 对象反序列化 打印流 Properties 引言 通过前面的简单学习 我们已经能够大致了解了关于文件的操作 但是能够明显感受到
  • 进制及进制转换详解。原码、反码、移码,补码区别介绍。(通俗易懂)

    目录 前言 一 十进制 n进制 进制转换详解 1 先说说什么是进制 2 二进制介绍 3 十进制 n进制 进制转换详解 重点 十进制 gt n进制 2 8 16 n进制 2 8 16 gt 十进制 非十进制间的互相转化 二 原码 反码 移码
  • ubuntu 11配置hadoop

    最近没事 研究下ubuntu 配置hadoop ubuntu版本 64 bit 11 04 hadoop版本 hadoop1 2 1 一 在Ubuntu下创建hadoop用户组和用户 1 创建hadoop用户组 sudo addgroup
  • java动态加载jar包,并运行其中的类和方法

    flink 相关 https www toutiao com article 6883793897495986691 动态加载jar包 在实际开发中经常会需要用到 尤其涉及平台和业务的关系的时候 业务逻辑部分可以独立出去交给业务方管理 业务
  • 解释执行与编译执行语言有什么区别?

    一 主体不同 1 编译执行 由编译程序将目标代码一次性编译成目标程序 再由机器运行目标程序 2 解释执行 将源语言直接作为源程序输入 解释执行 解释一句后就提交计算机执行一句 并不形成目标程序 二 优势不同 1 编译执行 相比解释执行编译执
  • 重试机制的实现(4m,10m,10m,1h,2h,6h,15h)

    项目场景 由于我们现在所做的项目有有很多的外放接口供代理商调用 但是有些接口的响应并不是实时返回的 此时我们就需要使用回调接口的方式 将信息响应给代理商 在这期间可能会出网络不稳定等其他情况 导致回调接口调用失败 所以需要特定的回调重试机制
  • 将list集合的元素按照添加顺序的倒序进行排列取出

    将list集合的元素按照添加顺序的倒序进行排列取出 方法1 list add 0 object List
  • Java处理SSH-免密登录

    前提 需要测试主机之间能够免密 配置ssh请自行百度 jar包 旧版 com jcraft jsch 仅支持老版的密钥格式 旧版本 RSA
  • mysql无法连接问题及其环境变量配置

    问题 Can t connect to MySQL server on localhost 3306 10061 方案一 不推荐 第一 在环境变量 系统变量的path中添加mysql的bin目录 我的是D mysql mysql 8 0 2

随机推荐

  • 图文详解 排序算法对比以及能解决的问题

    我们会使用的排序算法 总结源自 极客时间 王争老师 地址 https time geekbang org column intro 126 能看到所有的算法和数据结构的网站 https visualgo net en 这里是关于排序算法的链
  • 六大设计原则--开闭原则

    定义 software entities like classes modules and functions should be open for extension but closed for modifications 一个软件实体
  • php background,CSS BACKGROUND定位背景上下左右偏移

    css中我们经常使用background加载图片作为背景 这个背景图片可以通过具体属性的设置调整其上下左右偏移 调整背景图的上下左右偏移可以通过设置background属性或background position属性来实现 我们以div加背
  • Linux:非root、普通用户安装rpm(fontconfig、fc-cache命令)、中文字体

    前提 非root帐号 普通帐号 不能使用yum rpm命令 没root权限 安装fontconfig 测试是否安装 安装字体后需要使用fontconfig包的fc cache fv命令刷新字体缓存 可以使用下面命令测试 二选一就行 fc l
  • java版kafka producer实现

    需求 1 kafka server已经配置完全 且设定了访问限制 基于这一点 必须要设定认证 及预先分配的账号密码 2 由于项目开发环境是java 且不允许使用LogStash 基于这一点 必须实现一个java版的producer 先贴一份
  • error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

    原因是你两个类的头文件互相包含了 这样是有问题的 参考博客 error C4430 缺少类型说明符 假定为 int 注意 C 不支持默认 int 很多不懂呀 博客园
  • CountDownLatch、CyclicBarrier、Semaphore源码解析

    1 CountDownLatch 计数器 CountDownLatch CountDownLatch 类位于java util concurrent包下 利用它可以实现类似计数器的功能 比如有一个任务A 它要等待其他4个任务执行完毕之后才能
  • Spring Boot + Vue + Shiro 实现前后端分离

    前后端分离思想 前端只利用 Json 来和后端进行交互 后端不返回页面 只返回 Json 数据 前后端之间完全通过 public API 约定 Springboot 就不再赘述了 Controller 层返回 Json 数据 Request
  • Matlab - Solidworks 机器人建模(1)—— 浅谈Matlab机器人建模思路

    本文的讨论对象仅局限于刚体模型 Matlab建立机器人模型主要有两个方面 当然不排除有其他的 我只说我知道的 Rigidbody tree 坐标系模型 Simsacpe 物理模型 建立rigidbody tree模型主要是为了能够使用mat
  • 2017 ICM/MCM D题 Optimizing the Passenger Throughput at an Airport Security Check

    问题描述 参考链接 问题描述 在机场安全检查站优化乘客吞吐量 继2001年9月11日美国发生恐怖袭击事件后 全世界的机场安全状况得到显着改善 机场有安全检查站 在那里 乘客及其行李被检查爆炸物和其他危险物品 这些安全措施的目的是防止乘客劫持
  • 七层模型和五层模型

    高可用 负载均衡 高可用 不要因为技术而技术 七层模型 OSI开放式系统互联通信参考模型 OSI将计算机网络体系结构 architecture 划分为以下七层 物理层 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人 数据链
  • Linux系统制作Ubuntu18.04启动盘

    转自 https blog csdn net xiaoma 2018 article details 85059930 首先进入 Ubuntu 官网下载 Ubuntu18 04 ios 镜像包 下载的镜像包为 ubuntu 18 04 1
  • Redis视野打开篇

    1 String格式 一般存一个对象 是用这个对象的ID为键 将对象的所有属性格式化为json对象字符串 作为值 然后set ID json 进去 但是这种方式 在只需要修改这个对象中的其中一个属性时 就需要把json转为对象 改变值 然后
  • stm32定时器输入捕获配置步骤及实例笔记

    输入捕获的一般配置步骤 初始化定时器和通道对应IO的时钟 初始化IO口 模式为输入 GPIO Init GPIO InitStructure GPIO Mode GPIO Mode IPD 初始化定时器ARR PSC TIM TimeBas
  • 基于PID控制参数法改变PWM的占空比的STM32F4温控实例

    最近的工程要用到PID算法 在这里与大家分享一下 本文章适合直接上手PID 直接将PID与STM32结合运用起来 比较适合没有接触过PID的新人或者是算法与STM32结合不熟悉的新同学 如果要详细了解PID算法与调整算法还是需要深入了解一下
  • springboot自动装配原理

    目录 springboot自动装配详细原理 自动装配主要依靠三个核心的关键技术 引入starter 查找第三方配置类 动态加载 个人理解 还有不足的地方需要学习 写这篇帖子目的是为了记录自己的理解 springboot自动装配简单来说是sp
  • 此语言无法安装在此计算机上win10,如何解决Win10换成无法安装英文语言包的问题...

    因为工作需要 很多人要将Win10换成英文 但是使用控制面板中的 区域和语言 进行调整 发现根本不能选择英文 不错 下面是有一个 添加语言 的选项卡 但是你添加了语言 只能添加手写 语音识别 添加之后即使将英文设置为默认值 重启后还是无法英
  • Visual Studio Code 1.35更新:远程开发终于来啦

    前段时间大家可能看过一个新闻 微软为VSC开发一款名为Remote Development的扩展程序 可以让我们使用本地VSC开发和调试远程机器上的代码 这个功能对于我这个不会使用vim等linux工具的人来说 简直是一个重大消息 可惜的是
  • JPDA(jaa platform debugger architecture)

    参考文献 https www ibm com developerworks cn java j lo jpda1 index html ca drs https www ibm com developerworks cn java j lo
  • Java Json 数据下划线与驼峰格式进行相互转换

    概述 今天遇见一个需求 需要对json数据进行下划线与驼峰格式之间进行转换 在Fastjson Jackson Gson都提供了转换的方式 在这里进行一下列举 User类 public class User private String n