会议室:存储从JSON

时间:2017-12-01 12:23:09

标签: android arrays json nested-lists android-room

我在确定如何从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所示。我需要能够看到哪个客户订阅了什么以及订阅何时结束。

0 个答案:

没有答案