如何在Android中的SQLLite数据库中使用日历字段保存自定义对象?

时间:2016-09-15 06:49:33

标签: java android serialization deserialization gson

下面是我想要存储在SQLlite数据库中的自定义类。我想存储然后检索整个Calendar字段startTimeendTime,以便稍后我可以使用Calendar类型的所有字段。

我知道SQLLite只存储StringInt。有没有办法用SQLLite存储自定义类?

我知道Gson库可以提供帮助,但下面的代码是否正确?

public class Model_BlockTimes {

Calendar startTime;
Calendar endTime;


public Model_BlockTimes() {
}

public Model_BlockTimes(Calendar startTime, Calendar endTime) {
    this.startTime = startTime;
    this.endTime = endTime;
}

public Calendar getStartTime() {
    return startTime;
}

public void setStartTime(Calendar startTime) {
    this.startTime = startTime;
}

public Calendar getEndTime() {
    return endTime;
}

public void setEndTime(Calendar endTime) {
    this.endTime = endTime;
}
}

我的测试代码与Gson进行转换,无法正常工作。

**我可以存储来自函数convertToJson(...)的响应来存储和检索sqllite这样的响应吗?:

public String convertToJson(Model_BlockTimes times) {

    Gson gson = new Gson();
    String resp = gson.toJson(times);

    return resp;
}

如何从Json转换回Model_BlockTimes回来?

1 个答案:

答案 0 :(得分:0)

要反序列化一个对象,请使用

Gson gson = new Gson();
Model_BlockTimes item = gson.fromJson(json, Model_BlockTimes.class);

其中json是序列化的json字符串。

顺便说一下,sqlite有5 types和BLOB你可以用protobuf来节省一些空间。

相关问题