2016-06-30 4 views
3

さて、JSONを使用してサーバーからデータを取得するアプリケーションを作成しました。今私は携帯電話のローカルストレージ/ dbに取得したデータを保存したい。どうすればいいのですか?私はアンドロイドプログラミングの新機能です。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); 
        } 

感謝を解析するために私のコードであるJSONです。それを感謝します。

+0

を使用してキャッシングを行うことができますが、それは実際には非常に簡単です –

+0

達成することができます。あなたがする必要があるのは、jsonをJavaクラスに構文解析して保存することです(gsonはそれを行うための素晴らしい方法です)。その後、SQLiteを使用してJavaクラスを手動で保存するか、サードパーティのライブラリを使用して保存することができます。資産パッケージにjsonを保存することもできます。しかし、これを行う最善の方法は、jsonを解析し、ライブラリを使用してデータを保存することです。この提案を進めたいと思ったら、私は手助けする以上の準備をしています –

+0

@MirianaItani私はあなたの提案を考慮し、あなたの助けを感謝します^ _^ – Akio

答えて

1

まず私は、これは簡単な方法はありませんが、確かにそれは正しいものであることを伝える必要があります。

あなたはJSONを受信すると次のメッセージ

public class Message{ 
    public String issender; 
} 

という名前の新しいクラスを作成します。

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

か、SQLiteのデータベースを使用してSQL昔ながらの方法

1

次の2つの方法でこれを行うことができます:

  1. はsqiteでJSONのための新しい拡張機能を使用してください。必要な情報はこのページのhttps://www.sqlite.org/json1.htmlにあります。それでも、私はこれについて少し研究をすることを提案します。なぜなら、それは新しいものであり、私はそれをまだ使用していないからです。

  2. jsonを文字列に変換してデータベースに挿入できます。

    String jsontostring = jsonObject.toString(); 
    
関連する問題