2016-01-21 53 views
0

是否可以將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字段,因爲它使它變得醜陋。

預先感謝您。

回答

0

標識符「@id」不是有效的Java屬性,因爲它開始了'@'字符。這是一個很好的功能,因爲它不會與您在對象上的任何屬性發生衝突。

我不知道如何將該屬性轉換爲Java屬性,但您可能不想。 @id純粹用於對象圖的序列化/反序列化;如果對象圖已經改變,@id值可能會隨着每個序列化而改變。

您不能在序列化之外以有意義的方式使用@id作爲對象的標識符。你可能想要一個真正的ID,它不會基於序列化而改變。