2014-09-08 18 views
12

sqlite'ı json'a dönüştürmenin bir yolu var mı? Diğer tüm sorular json ayrıştırmak ve sqlite kaydetmektir. Bu konuda herhangi bir referans göremiyorum, lütfen bana yardım edin.SQLite'ı JSON'a dönüştürün

Uygulamanın içinde bir sqlite db var ve json'a dönüştürülmesini, db sürümünü yükseltmeyi, daha önce dönüştürülmüş json'u ayrıştırıp başka bir tablo eklemesini istiyorum. Bunu nasıl yapmalıyım?

Şimdiden teşekkürler.

+0

Json Eğer OO-ilişkisel eşleme kendiniz yapmak gerekecektir, bir nesne yönelimli veri biçimidir. – user1095108

+0

, Db'nizden bir ArrayList alabilir ve Gson veya Jackson gibi bir kütüphaneyle JSON'a dönüştürebilirsiniz. –

+0

uzun bir süreç olmalı. ama -1 ile olanı anlamıyorum. –

cevap

26

Referans Link

private JSONArray getResults() 
{ 

String myPath = DB_PATH + DB_NAME;// Set path to your database 

String myTable = TABLE_NAME;//Set name of your table 

//or you can use `context.getDatabasePath("my_db_test.db")` 

SQLiteDatabase myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); 

String searchQuery = "SELECT * FROM " + myTable; 
Cursor cursor = myDataBase.rawQuery(searchQuery, null); 

JSONArray resultSet  = 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() ); 
        } 
       } 
      } 
      resultSet.put(rowObject); 
      cursor.moveToNext(); 
     } 
     cursor.close(); 
     Log.d("TAG_NAME", resultSet.toString()); 
     return resultSet; 
} 
+2

Güzel bir @ Sagar.You beni dövmek için. Ben de aynı şekilde cevap verecektim: P – Deb

+1

Üzgünüm Deb ... Mutlu Kodlama :) –

+4

Bu makaleden [Dönüştürme veritabanı imleç sonucu Json Array] (http: //tech.sarathdr.com/android-app/convert-database-cursor-result-to-json-array-android-app-development/). Yapıştır yapıştırdığınızda referans linki göndermek iyidir. –

1
static JSONObject cursorToJson(Cursor c) { 
    JSONObject retVal = new JSONObject(); 
    for(int i=0; i<c.getColumnCount(); i++) { 
     String cName = c.getColumnName(i); 
     try { 
      switch (c.getType(i)) { 
       case Cursor.FIELD_TYPE_INTEGER: 
        retVal.put(cName, c.getInt(i)); 
        break; 
       case Cursor.FIELD_TYPE_FLOAT: 
        retVal.put(cName, c.getFloat(i)); 
        break; 
       case Cursor.FIELD_TYPE_STRING: 
        retVal.put(cName, c.getString(i)); 
        break; 
       case Cursor.FIELD_TYPE_BLOB: 
        retVal.put(cName, DataUtils.bytesToHexString(c.getBlob(i))); 
        break; 
      } 
     } 
     catch(Exception ex) { 
      Log.e(TAG, "Exception converting cursor column to json field: " + cName); 
     } 
    } 
    return retVal; 
}