好的,我创建了一个使用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);
}
提前感谢那些愿意回答的人。会很感激的。
答案 0 :(得分:1)
您可以通过两种方式执行此操作:
在sqite中使用json的新扩展名。您可能需要的信息可在此页面https://www.sqlite.org/json1.html上找到。我仍然建议对此进行更多的研究,因为它是新的,我还没有使用它。
您可以将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老式的方式进行缓存