下面的代码获取我的Android SQLite数据库中的所有行,并将其转换为JSON数组。现在我想使用PHP获取JSON数组以将其存储到我的在线数据库中。我该怎么办?请帮忙。
这是我使用的代码:
private JSONArray getResults()
{
String myPath = this.getDatabasePath("cart.db").toString();// Set path to your database
String myTable = CartContract.CartEntry.TABLE_NAME;//Set name of your table
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("FINAL RESULT", resultSet.toString() );
return resultSet;
}
这是输出:
FINAL RESULT: [{"id":"1","food_id":"52","food_price":"30","food_name":"Pink Lemonade","quantity":"5","amount":"150","special_request":""},{"id":"2","food_id":"51","food_price":"30","food_name":"House Blend Iced Tea","quantity":"3","amount":"90","special_request":""}]
我想把这些值放在这里:(在线数据库) attached picture
我应该怎么做?
更新:我已经发送了我的JSONArray的结果并将其存储在“$ data”中,但我现在的问题是如何将值插入我的在线数据库。顺便说一句,在我的PHP代码中,这里是我将JSONArray存储为字符串的地方:
$data = $_POST["data"];
更新:我已经成功了!感谢您注意并回答我的问题
答案 0 :(得分:0)
我会给你一些一般性指导。在HTTP调用上发送JSON可能会变得奇怪,因为它可以包含HTTP特有的字符。要解决这个问题,请在Android上使用Base 64对JSON进行编码,然后在PHP中对其进行解码。
我假设您可以弄清楚如何使用Java进行base64编码。
在PHP上,您将获得原始JSON。
$originalJson = base64_decode($inputFromAndroid);
$object = json_decode($originalJson, true);
// Now you have the data as a PHP array.