gson 与 SerializedName : 修改json生成的bean类字段名称

2023-12-23 04:08

本文主要是介绍gson 与 SerializedName : 修改json生成的bean类字段名称,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


import com.google.gson.FieldNamingPolicy
import com.google.gson.GsonBuilder
import com.google.gson.annotations.SerializedName
import org.junit.Test/*** SerializedName* 修改json字段名称*/
data class UserNaming(@SerializedName("Name")var name: String,@SerializedName("email_of_developer")var emailOfDeveloper: String,@SerializedName("isDeveloper")var isDeveloper: Boolean,@SerializedName("_ageOfDeveloper")var ageOfDeveloper: Int,var numStr: String
)class ExampleUnitTest2 {@Testfun test1() {val builder = GsonBuilder()builder.setFieldNamingPolicy(FieldNamingPolicy.IDENTITY)val gson = builder.create()//json多一个haha字段val jsonStr ="{\"haha\":\"666\",\"Name\":\"name\",\"email_of_developer\":\"email\"," +"\"isDeveloper\":true,\"_ageOfDeveloper\":26}"println("usersJson===$jsonStr")val userNaming = gson.fromJson(jsonStr, UserNaming::class.java)println("usersBean===$userNaming")}//usersJson==={"haha":"666","Name":"name","email_of_developer":"email","isDeveloper":true,"_ageOfDeveloper":26}//usersBean===UserNaming(name=name, emailOfDeveloper=email, isDeveloper=true, ageOfDeveloper=26, numStr=null)@Testfun test2() {val builder = GsonBuilder()builder.setFieldNamingPolicy(FieldNamingPolicy.IDENTITY)val gson = builder.create()//json少字段val jsonStr ="{\"email_of_developer\":\"email\",\"isDeveloper\":true,\"_ageOfDeveloper\":26}"println("usersJson===$jsonStr")val userNaming = gson.fromJson(jsonStr, UserNaming::class.java)println("usersBean===$userNaming")}//usersJson==={"email_of_developer":"email","isDeveloper":true,"_ageOfDeveloper":26}//usersBean===UserNaming(name=null, emailOfDeveloper=email,// isDeveloper=true, ageOfDeveloper=26, numStr=null)}

这篇关于gson 与 SerializedName : 修改json生成的bean类字段名称的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/526652

相关文章

Django HTTPResponse响应体中返回openpyxl生成的文件过程

《DjangoHTTPResponse响应体中返回openpyxl生成的文件过程》Django返回文件流时需通过Content-Disposition头指定编码后的文件名,使用openpyxl的sa... 目录Django返回文件流时使用指定文件名Django HTTPResponse响应体中返回openp

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Spring Bean初始化及@PostConstruc执行顺序示例详解

《SpringBean初始化及@PostConstruc执行顺序示例详解》本文给大家介绍SpringBean初始化及@PostConstruc执行顺序,本文通过实例代码给大家介绍的非常详细,对大家的... 目录1. Bean初始化执行顺序2. 成员变量初始化顺序2.1 普通Java类(非Spring环境)(

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优