将JSON数据存储到android中的本地数据库

时间:2016-06-30 09:10:39

标签: android

好的,我创建了一个使用JSON从我的服务器检索数据的应用程序。现在我想将检索到的数据存储在我手机的本地存储/数据库中。我该怎么做?我是android编程的新手。

这是我从服务器收到的JSON

{"messages":[{"id":"44","issender":0,"content":"CAT1DOG","date":"Jan 01, 1970 07:30 AM","sender":"Administrator","receiver":"User"},{"id":"57","issender":0,"content":"ttt","date":"Jun 30, 2016 03:43 PM","sender":"Administrator","receiver":"User"},{"id":"58","issender":0,"content":"s","date":"Jun 30, 2016 03:43 PM","sender":"Administrator","receiver":"User"},{"id":"82","issender":0,"content":"yeuwu","date":"Jun 30, 2016 04:59 PM","sender":"Administrator","receiver":"User"}],"success":1}

这是我解析JSON的代码

for(int i = 0; i < messages.length(); i++){
                        JSONObject o        = messages.getJSONObject(i);
                        String msgid        = o.getString("id");
                        String message      = o.getString("content");
                        String date         = o.getString("date");
                        String sender       = o.getString("sender");
                        String receiver     = o.getString("receiver");
                        String issender     = o.getString("issender");

                        // TEMP HASHMAP FOR USER
                        HashMap<String, String> msgList = new HashMap<String, String>();

                        // ADDING EACH CHILD NOTE TO HASHMAP => VALUE
                        msgList.put("id", uid);
                        msgList.put("message", message);
                        msgList.put("date", date);
                        msgList.put("name", sender);
                        msgList.put("receivername", receiver);

                        // ADDING USER TO MSGLIST
                        ListOfMsg.add(msgList);
                    }

提前感谢那些愿意回答的人。会很感激的。

2 个答案:

答案 0 :(得分:1)

您可以通过两种方式执行此操作:

  1. 在sqite中使用json的新扩展名。您可能需要的信息可在此页面https://www.sqlite.org/json1.html上找到。我仍然建议对此进行更多的研究,因为它是新的,我还没有使用它。

  2. 您可以将json转换为字符串并将其插入数据库。

    String jsontostring = jsonObject.toString();
    

答案 1 :(得分:1)

首先,我需要告诉你,这不是一个简单的方法,但肯定是正确的。

接下来创建一个名为Message

的新类
public class Message{
  public String issender;
}

当你收到json:

List<Message> messages= new ArrayList<>();
Gson gson = new Gson();
Message m= gson.fromJson(json.toString(),Message.class);
messages.add(m);

请注意,班级中的项目应该具有您试图接收的json中的项目名称

现在我们完成了这部分: 让我们添加用于缓存的库: 按照本教程,如果您需要帮助,请回复我: https://guides.codepath.com/android/activeandroid-guide

或者你可以使用sql老式的方式进行缓存