如何从android studio发送JSON数组输出到PHP

时间:2017-09-02 17:10:35

标签: php android json sqlite

下面的代码获取我的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"];

更新:我已经成功了!感谢您注意并回答我的问题

1 个答案:

答案 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.