在Gson反序列化器旁边使用Room Persistence Library中的@Embedded

时间:2018-01-22 10:56:37

标签: java json gson pojo android-room

我使用Google Room Persistence Library来保存数据库中的数据。在Room中有一个注释(@Embedded):

  

您可以使用@Embedded批注来表示您希望分解到表格中的子字段的对象。然后,您可以像查看其他单个列一样查询嵌入字段

@Entity
public class MyObject {

// nested class
public class GeneralInfo {

    public String ownerName;

    @PrimaryKey
    public long wellId;
}

@Embedded
public GeneralInfo generalInfo;

public long objectId;

// other fields
}

我使用Gson从REST API反序列化json字符串,我希望Gson直接将GeneralInfo字段反序列化为MyObject字段。我怎样才能做到这一点?

我希望Gson像这样反序列MyObject

{
    objectId : 1
    wellId : 1
    ownerName : "Me"
}

这个

{
    generalInfo : {        
        wellId : 1
        ownerName : "Me"        
    } 
    objectId : 1
}

除了使用JsonAdapter之外还有其他方法吗?我可以编写自己的convertToJsonconvertFromJson,但我想使用Gson,最好使用注释告诉Gson"不要将此embeddede对象反序列化为jsonObject,将其字段插入其父json字段"

0 个答案:

没有答案