使用Retrofit将无密钥JSON存储到Realm

时间:2018-06-14 22:09:19

标签: android realm retrofit retrofit2

我想使用Retrofit将以下JSON从在线API直接保存到Realm。我正在努力定义模型,因为没有键,值是动态的。

JSON:

{
  "Plants": {
    "Green": [
      "Ascia",
      "Musca Arabica"
      ...
    ],
    "Yellow": [
      "Campona",
      "Zirata",
      ...
    ],
    ...
  }
}

这甚至可行吗?我知道我可以使用Map<String, Map<String, Set<String>>>,但制作Realm模型会给我带来麻烦。

1 个答案:

答案 0 :(得分:1)

你可以完全压扁它。

public class Data extends RealmObject {
    @PrimaryKey 
    private String typeCategoryName; // "Plants_Green_Ascia"

    @Index
    private String type; // "Plants"
    @Index
    private String category; // "Green"

    private String name; // "Ascia"
}

然后你可以像

一样查询它
RealmResults<Data> data = realm.where(Data.class)
                            .equalTo("type", "Plants")
                            .equalTo("category", "Green")
                            .findAll();