将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"),但我仍然idnull。有没有人有这方面的经验?我不想在我的JSON中添加另一个id字段,因为它使它变得丑陋。

预先感谢您。

标识符“@id”不是有效的Java属性,因为它开始了'@'字符。这是一个很好的功能,因为它不会与您在对象上的任何属性发生冲突。

我不知道如何将该属性转换为Java属性,但您可能不想。 @id纯粹用于对象图的序列化/反序列化;如果对象图已经改变,@id值可能会随着每个序列化而改变。

您不能在序列化之外以有意义的方式使用@id作为对象的标识符。你可能想要一个真正的ID,它不会基于序列化而改变。