将Json从httpResponse存储到Android SQLite数据库中

时间:2014-06-05 12:57:47

标签: android sqlite

如何轻松地将大量数据存储到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....

1 个答案:

答案 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类设置为改装界面的返回参数(在上方链接中描述),将其初始化,然后您可以调用此方法。我没有写下这个漏洞,在文档的介绍部分基本上就是你所需要的;)