如何让Jackson在序列化时将字段id重命名为_id,在反序列化时反之亦然,而无需在类上添加任何注解?
id
_id
例如,此对象:
{ "id": "abc", "value": "foo" }
应序列化为:
{ "_id": "abc", "value": "foo" }
我希望它适用于任何类,而不需要用@JsonProperty("_id")注解每个id字段
@JsonProperty("_id")
xa9qqrwz1#
我已经找到了一个相当好的解决这个问题的办法。
val document = objectMapper.convertValue(data, Document::class.java) if ("id" in document) { document["_id"] = document["id"] document.remove("id") } objectMapper.writeValueAsString(document)
首先将该对象转换为Map/树状结构(如使用Mongo时为Document),这很容易编辑,并在进行更改后将其序列化/反序列化为您想要的格式。我不确定这个解决方案的表现如何,但它似乎非常直截了当。
1条答案
按热度按时间xa9qqrwz1#
我已经找到了一个相当好的解决这个问题的办法。
首先将该对象转换为Map/树状结构(如使用Mongo时为Document),这很容易编辑,并在进行更改后将其序列化/反序列化为您想要的格式。我不确定这个解决方案的表现如何,但它似乎非常直截了当。