2017-09-16 19 views
-4

私はSQLiteデータベースに1つのテーブルが含まれています。テーブルには、5つのフィールドがあります。たとえば、 id、name、question、year、answer.ThatはjsonArrayを変換します。Android sqliteのjsonへの配列

以下のコードを試してみましたが、1つの列しか返しませんでした。

 try{ 
      JSONArray jArray = new JSONArray(); 
      cursor.moveToFirst(); 
      while (cursor.isAfterLast() == false) { 
       int totalColumn = cursor.getColumnCount(); 
       JSONObject rowObject = new JSONObject(); 
       for (int i = 0; i < totalColumn; i++) { 
        if (cursor.getColumnName(i) != null) { 
         try { 
          if (cursor.getString(i) != null) { 
           Log.d("TAG_NAME", cursor.getString(i)); 
           rowObject.put(cursor.getColumnName(i), cursor.getString(i)); 
          } else { 
           rowObject.put(cursor.getColumnName(i), ""); 
          } 
         } catch (Exception e) { 
          Log.d("TAG_NAME", e.getMessage()); 
         } 
        } 
       } 
       jArray.put(rowObject); 
       cursor.moveToNext(); 
      } 
      cursor.close(); 
      Log.d("jsonA", jArray.toString()); 

上記のコードの結果は ある[{ID: "1"} {ID: "2"} ]

IはjsonArray

[{"id":"1", "name":"sh", "question":"yid", "year":"uyit", "answer":"uify"}, 
{"id":"2","name":"sh","question":"syusyuytu","year":"uysrtuy","answer":"sturt"} ] 
に5行とその値を返したいです

My Cursorクエリ

public Cursor listoftest() { 
SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.query("list_of_question_set", new String[]{ "id","name","description","questions","duration","correct","negative"}, null, null, null, null, null, null); 
    return cursor; 
} 
+0

を解決する必要があり

[{id:"1"name:"sh",question:"yid",year:"uyit",answer:"uify"} { id:"2"name:"sh",question:"syusyuytu",year:"uysrtuy",answer:"sturt"} ] 

のですか? –

+0

私はコードを – Jayapriya

+0

としましたが、カーソルを取得しているクエリを更新できますか? –

答えて

1

つのArrayList

ArrayList<DataPojaClass > alUser = new ArrayList<>(); 

試し{

ArrayList<DataPojaClass > alUser = new ArrayList<>(); 



    JSONArray parentArray = jsonRoot.getJSONArray(); 

    for (int j = 0; j < parentArray.length(); j++) { 

     JSONObject finalObject = parentArray.getJSONObject(j); 
     // User 
     DataPojaClass user = new DataPojaClass(); 
     // Set user values 
     user.setId(finalObject.getString("id")); 

     user.setName(finalObject.getString("name")); 

     user.setQuestion(finalObject.getString("question")); 

     user.setYear(finalObject.getString("year")); 


     alUser.add(user); 
    } 
    // Finally return user list 
    dataset.addAll(alUser) 
} 
}catch(Exception E){ 

}

** DataPojaClassクラスを作成します**

を宣言
+0

私はSQLiteからのデータとJSON配列への入力を受け取りました – Jayapriya

1

カーソルの照会が予想される出力と一致しません。年とその答えは、あなたのクエリー列

public Cursor listoftest() { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.query("list_of_question_set", new String[]{ "id","name","description","questions","duration","correct","negative"}, null, null, null, null, null, null); 
    return cursor; 
} 

には存在しないと、あなたの予想される出力は、あなたが任意の例外を持っていない競合

+0

ok happyコーディングありがとう – Jayapriya

+0

あなたは答えを受け入れる必要があります下の答えの左側にチェックボタンをクリックupvoteとdownvoteボタン@Jayapriya –

+0

しかし、私は公の投票に私はそれを受け入れることになる15kの評判が必要 – Jayapriya

関連する問題