2016-06-30 3 views
3

Итак, я создал приложение, которое извлекает данные с моего сервера с помощью JSON. Теперь я хочу сохранить извлеченные данные в локальном хранилище/db моего телефона. Как мне это сделать? Я новичок в программировании для 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); 
        } 

Спасибо заранее для тех, кто будет ответ. оценят это.

+0

Использование SQLite базы данных вы можете достичь –

+0

Это на самом деле очень легко. Все, что вам нужно сделать, это сохранить синтаксический анализ вашего json в java-классе (gson - отличный способ сделать это). Затем вы можете вручную сохранить класс java с помощью SQLite или использовать стороннюю библиотеку, чтобы сохранить его для вас. Вы также можете сохранить json в пакете активов. Тем не менее, лучший способ сделать это - разобрать json, а затем использовать библиотеку для сохранения данных. Если вы хотите продолжить это предложение, я более чем готов помочь –

+0

@MirianaItani Я рассмотрю ваше предложение и оценю вашу помощь^_^ – Akio

ответ

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 вы пытаетесь получить

Теперь мы закончили с этой частью: Добавим библиотеку для кэширования: Следуйте за t его учебник, и если вам нужна помощь, чтобы вернуться ко мне: https://guides.codepath.com/android/activeandroid-guide

или вы могли бы сделать кэширование с помощью SQL старинке

1

Вы можете сделать это двумя способами:

  1. Используйте новое расширение для JSON в sqite. Информация, которая может вам понадобиться, доступна на этой странице https://www.sqlite.org/json1.html. Тем не менее, я бы предложил сделать немного больше исследований по этому вопросу, поскольку это новый, и я еще не использовал его.

  2. Вы можете конвертировать json в строку и вставлять ее в базу данных.

    String jsontostring = jsonObject.toString(); 
    
Смежные вопросы