2017-09-02 126 views
-1

下面的代码获取我的Android SQLite数据库中的所有行并将其转换为JSON数组。现在我想用PHP将JSON数组存储到我的在线数据库中。我该怎么办?请帮忙。如何从android studio发送JSON数组输出到PHP

这是我使用的代码:

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

我会给你一些一般的指导。在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. 
+0

我很抱歉,但我不知道如何base64与Java编码。我还是个初学者。你能告诉我如何通过PHP将我的Android SQLite数据库的值发送到在线数据库吗? – EDGE