Is there a way to convert sqlite to json? All other questions are parsing json and saving to sqlite. I can't seem to find any reference on this, please help me.
I have a sqlite db inside the app and i need it to be converted to json, upgrade db version, parse earlier converted json and add another table. Any suggestions on how should I do this?
Thanks in advance.
SQLite stores JSON as ordinary text. Backwards compatibility constraints mean that SQLite is only able to store values that are NULL, integers, floating-point numbers, text, and BLOBs. It is not possible to add a sixth "JSON" type.
It's possible to output query results as a JSON document when using the SQLite command line interface. We can do this with the json output mode. We can also use SQLite functions like json_object() and/or json_array() to return query results as a JSON document.
The quickest and easiest way to convert SQLite to MySQL is by exporting an SQL Database to a Dump File, and then importing the SQLite Dump into MySQL Database. You can export an SQLite Database to Dump File using the . dump command.
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; }
Quick and easy way if you don't feel like coding it:
Beware, for some reason it does not correctly convert NULL values. It converts this to an empty string... Besides that it works like a charm as far as I now.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With