2014-09-08 59 views
12

Có cách nào để chuyển đổi sqlite thành json không? Tất cả các câu hỏi khác là phân tích cú pháp json và lưu vào sqlite. Tôi không thể tìm thấy bất kỳ tài liệu tham khảo về điều này, xin vui lòng giúp tôi.Chuyển đổi SQLite thành JSON

Tôi có một db sqlite bên trong ứng dụng và tôi cần nó được chuyển đổi thành json, nâng cấp phiên bản db, phân tích cú pháp json đã được chuyển đổi trước đó và thêm một bảng khác. Bất kỳ đề xuất về cách tôi nên làm điều này?

Xin cảm ơn trước.

+0

Json là một định dạng dữ liệu hướng đối tượng, bạn sẽ cần phải làm việc lập bản đồ OO quan hệ chính mình. – user1095108

+0

bạn có thể nhận được một ArrayList từ Db của bạn và với một thư viện như Gson hoặc Jackson chuyển nó sang JSON. –

+0

phải là một quá trình lâu dài. nhưng tôi không hiểu cái gì với -1. –

Trả lời

26

Reference 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

Đẹp nhất @ Sagar.Bạn đánh bại tôi với nó. Tôi sẽ trả lời theo cùng một cách: P – Deb

+1

Xin lỗi Deb ... Happy Coding :) –

+4

Đây là từ bài viết [Chuyển đổi kết quả con trỏ cơ sở dữ liệu sang Json Array] (http: //tech.sarathdr.com/android-app/convert-database-cursor-result-to-json-array-android-app-development/). Bạn nên đăng liên kết tham chiếu khi bạn sao chép dán. –

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; 
} 
Các vấn đề liên quan