2014-09-08 15 views
12

Gibt es eine Möglichkeit, sqlite in json zu konvertieren? Alle anderen Fragen analysieren json und speichern in sqlite. Ich kann keinen Hinweis darauf finden, bitte hilf mir.SQLite in JSON konvertieren

Ich habe eine SQLite db in der App und ich brauche es in JSON konvertiert werden, aktualisieren DB-Version, Pars früher konvertiert Json und fügen Sie eine weitere Tabelle hinzu. Irgendwelche Vorschläge wie soll ich das machen?

Vielen Dank im Voraus.

+0

Json ist ein objektorientiertes Datenformat, müssen Sie selbst die OO-relationales Mapping zu tun. – user1095108

+0

können Sie eine ArrayList von Ihrem DB bekommen und mit einer Bibliothek wie Gson oder Jackson zu JSON konvertieren. –

+0

muss ein langer Prozess sein. aber ich verstehe nicht, was mit der -1 ist. –

Antwort

26

Referenz 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

Nice one @ Sagar.You schlug mich zu.Ich würde auf die gleiche Weise antworten: P – Deb

+1

Sorry Deb ... Happy Coding :) –

+4

Dies ist aus dem Artikel [Convert Datenbank Cursor Ergebnis zu Json Array] (http: //tech.sarathdr.com/android-app/convert-database-cursor-result-to-json-array-android-app-development/). Es empfiehlt sich, den Referenzlink beim Kopieren von Paste zu veröffentlichen. –

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; 
}