如何轻松地将大量数据存储到SQLite数据库中? 我读过我可以使用Gson来解析这些数据,但我不确定如何做到这一点。 我已经创建了一个SQLiteHelper和必要的类,我只是坚持如何解析这些数据 我得到一个httpResponse,返回大量的Json,如下所示:
"objs": {
"ptoStatus": [
{
"id": 1,
"modifieddate": "2006-07-06 05:35:38",
"description": "Submitted",
"name": "Submitted",
"createddate": "2007-07-06 09:43:38"
},
{
"id": 2,
"modifieddate": "2006-07-06 09:35:38",
"description": "Approved",
"name": "Approved",
"createddate": "2009-07-06 09:35:38"
},
{
"id": 3,
"modifieddate": "2009-07-06 09:50:38",
"description": "Denied",
"name": "Denied",
"createddate": "2009-07-06 09:35:38"
}
],
"alertStates": [
{
"id": 1,
"createddate": "2008-02-11 09:11:57",
"modifieddate": "2008-02-11 09:11:57",
"description": "Sending"
},
{
"id": 2,
"createddate": "2008-02-11 09:11:57",
"modifieddate": "2008-02-11 09:11:57",
"description": "Response"
},
{
"id": 3,
"createddate": "2008-02-11 09:11:57",
"modifieddate": "2008-02-11 09:11:57",
"description": "Acknowledge"
},
//etc....
答案 0 :(得分:0)
Retrofit是Android应用程序的一个很棒的REST客户端。在这里您可以找到文档: http://square.github.io/retrofit/
您可以使用它来获取http响应,但是使用它可以将所有响应数据转换为Java对象(默认情况下它使用Googles Gson解析器)
对于那个特定的json,你需要创建这样的东西:
public class ObjsResponse {
public MyObjects data;
public class MyObjects {
List<States> ptoStatus;
List<AlertStates> alertStates;
}
}
您存储在数据库中的模型只需要具有相同的名称(或者您可以在json中使用不同键的注释,但这些都在Gson中记录),如下所示:
public class States {
int id;
String modifieddate; //here you can use some sort of DateTime too (for example jodatime)
String description;
String name;
String createddate;
}
在这里,您可以使用数据库注释或任何您喜欢的内容。
在此之后,您只需将此ObjsResponse类设置为改装界面的返回参数(在上方链接中描述),将其初始化,然后您可以调用此方法。我没有写下这个漏洞,在文档的介绍部分基本上就是你所需要的;)