我在确定如何从JSON获取数据并将其解析为Room数据库时遇到了一些麻烦。 我将使用一个简单的例子来说明问题。 有些用户可以拥有多个订阅,每个用户的订阅都有自己的结束日期。
JSON的一个例子可能是:
[{"customerID":724769,"Subscriptions":[["TV_Sub","1-1-2019"],
["Internet_Sub","2-2-2018"]]},
{"customerID":44444,"Subscriptions":[["Tennis_Sub","1-9-2022"],
["TV_Sub","8-9-2019"]]}]
正如您所看到的,客户可以拥有多个具有不同结束日期的订阅。
我如何将其解析为房间?我知道你可以使用一个typeconverter列表,但我不知道这将如何适用于列表中的列表。也许@Embedded是解决这一特殊问题的更好选择?
@SerializedName("customerID")
@PrimaryKey
private int customerID;
@SerializedName("Subscriptions")
private List<List<String>> subscriptions = null;
@Ignore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@SerializedName("customerID")
public int getCustomerID() {
return customerID;
}
@SerializedName("customerID")
public void setCustomerID(int customerID) {
this.customerID = customerID;
}
public List<List<String>> getSubscriptions() {
return subscriptions;
}
public void setSubscriptions(List<List<String>> subscriptions) {
this.subscriptions = subscriptions;
}
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
(由http://www.jsonschema2pojo.org/生成)
简而言之,希望能够将JSON放入数据库并检索数据,如JSON所示。我需要能够看到哪个客户订阅了什么以及订阅何时结束。