当一个json存在id 和_id 的时候,使用JSONObject.parseObject进行序列号操作,映射错误

本文主要是介绍当一个json存在id 和_id 的时候,使用JSONObject.parseObject进行序列号操作,映射错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

FastJson默认会将Java对象中的下划线风格的字段名转换为驼峰风格的属性名。如果你想保留原始的下划线风格的字段名,可以在对应的字段上添加@JSONField注解,并设置其name属性为下划线风格的字段名。

{"hasExtraBed":0,"hasWindow":2,"maximumOccupancy":2,"bedCount":1,"photos":[],"facilities":[],"_id":"62535e28f13db600118aeda4","title":"高大坚固","area":"15","bedTypeCode":"BT02","id":1898184,"wifi":1,"floor":"4-9"}

        @JSONField(name = "_id", alternateNames = { "id" })private String id;

@JSONField(name = "_id", alternateNames = { "id" }) 是阿里巴巴的 fastjson 序列化/反序列化框架提供的注解,用于控制 JSON 字符串和 Java 对象之间的映射关系。

具体来说,该注解用于指定 Java 对象中的属性在序列化成 JSON 字符串时所对应的字段名称,以及在反序列化 JSON 字符串时所对应的属性名称。其中:

  • name 属性用于指定序列化时所对应的字段名称,即将 Java 对象中的 _id 属性序列化为 JSON 字符串中的 _id 字段。
  • alternateNames 属性用于指定反序列化时所对应的属性名称,即将 JSON 字符串中的 id 字段反序列化为 Java 对象中的 _id 属性。

这样做的目的是为了方便处理不同系统之间的数据转换,可以在不修改 Java 对象属性名的情况下,指定其在序列化/反序列化时所对应的字段名称,保证了数据的兼容性。

需要注意的是,使用该注解需要先引入 fastjson 库,并在需要使用的类或属性上添加该注解。

这样最后映射的idj就会为1898184

这篇关于当一个json存在id 和_id 的时候,使用JSONObject.parseObject进行序列号操作,映射错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

C# 读写ini文件操作实现

《C#读写ini文件操作实现》本文主要介绍了C#读写ini文件操作实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、INI文件结构二、读取INI文件中的数据在C#应用程序中,常将INI文件作为配置文件,用于存储应用程序的

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如