将Jackson-Jsog的@id赋值给成员变量
问题描述:
是否可以将jsog的@id值赋值给POJO类中的成员变量?将Jackson-Jsog的@id赋值给成员变量
比如我有一个JSON:
"user": {
"@id": "1",
"name": "John Doe"
}
而Java类
@JsonIdentityInfo(generator=JSOGGenerator.class)
public class User {
private String id; // this is null
private String name;
// getters and setters ...
}
我试图@JsonProperty("@id")
,但我仍然id
是null
。有没有人有这方面的经验?我不想在我的JSON中添加另一个id
字段,因为它使它变得丑陋。
预先感谢您。
答
标识符“@id”不是有效的Java属性,因为它开始了'@'字符。这是一个很好的功能,因为它不会与您在对象上的任何属性发生冲突。
我不知道如何将该属性转换为Java属性,但您可能不想。 @id纯粹用于对象图的序列化/反序列化;如果对象图已经改变,@id值可能会随着每个序列化而改变。
您不能在序列化之外以有意义的方式使用@id作为对象的标识符。你可能想要一个真正的ID,它不会基于序列化而改变。