本文主要是介绍当一个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进行序列号操作,映射错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!