Lei*_*yba 17 android android-sqlite android-json
有没有办法将sqlite转换为json?所有其他问题是解析json并保存到sqlite.我似乎无法找到任何参考,请帮助我.
我在应用程序内部有一个sqlite数据库,我需要它转换为json,升级db版本,解析早期转换的json并添加另一个表.关于我该怎么做的任何建议?
提前致谢.
Sag*_*wal 33
参考链接
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;
}
Run Code Online (Sandbox Code Playgroud)
快速简便的方法,如果您不想对其进行编码:
注意,由于某种原因,它不能正确转换NULL值。它将其转换为一个空字符串...到目前为止,它的工作方式就像一个符咒。
小智 2
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28700 次 |
| 最近记录: |