2017-01-28 6 views
2

私は1つのプロジェクトに取り組んでいます。アンドロイドまたはiOsアプリケーションからjson文字列形式でデータを取得しています。私はそれをデコードするためにjsonデコードを使用しています。しかし、私は配列を取得しませんでした。jsonの文字列をデコードするには?

ioSとAndroidはURLに続いて呼び出しを行い、URLを通じてREQUESTモードでデータを渡します。次のようにURLは次のとおりです。

PHPで
http://dummy.test.pro/webservices/Cart/AddToCartMatrix?{ "Add_Cart" = "{\n \"product_id\" : \"30\",\n \"user_id\" : \"67\",\n \"design_inventory\" : \"design_master\",\n \"table\" : \"temp_cart\"\n}"; } 

次のように、私はデータを読んでいます:

$cart_data = json_decode(stripslashes($_REQUEST['Add_Cart'])); 
pre($cart_data); 

しかし、URLを呼び出した後、私は次のようなエラーになっています:

メッセージ:未定義のインデックス:Add_Cartを

この問題で私を助けてください。前もって感謝します。

答えて

0

これは、Add_Cartは、$ _REQUEST配列のインデックスではないことを意味します。

print_r($_REQUEST)のようなものを使用してリクエストの内容を確認してください。

+0

キーgetメソッドを逃したかもしれない。この

http://dummy.test.pro/webservices/Cart/AddToCartMatrix?Add_Cart={\n \"product_id\" : \"30\",\n \"user_id\" : \"67\",\n \"design_inventory\" : \"design_master\",\n \"table\" : \"temp_cart\"\n} 

を試してみてください。 –

0

どのようにリクエストを送信しているのかは分かりませんがリクエストを処理していますが、リクエストのURIをどのように送信するかを変更すると思います。

http://dummy.test.pro/webservices/Cart/AddToCartMatrix?{ "Add_Cart" = "{\n \"product_id\" : \"30\",\n \"user_id\" : \"67\",\n \"design_inventory\" : \"design_master\",\n \"table\" : \"temp_cart\"\n}"; } 

へ:

http://dummy.test.pro/webservices/Cart/AddToCartMatrix?Add_Cart=%7B%5Cn+%5C%22product_id%5C%22+%3A+%5C%2230%5C%22%2C%5Cn+%5C%22user_id%5C%22+%3A+%5C%2267%5C%22%2C%5Cn+%5C%22design_inventory%5C%22+%3A+%5C%22design_master%5C%22%2C%5Cn+%5C%22table%5C%22+%3A+%5C%22temp_cart%5C%22%5Cn%7D 

これは、このメソッドの動作私自身のテストでhere

works ​​

を働くかもしれ理由については、こちらをご覧ください。 JSONのURLエンコード関数を呼び出して、jsonの変数名としてAdd_Cartを作成してください。

0

このiOS/Androidアプリは、既知の、または有効なクエリ文字列形式を使用しないかなり不正な形式のURLを送信しています。つまり、PHPを使って$_GETまたは$_REQUESTにデコードすることはできません。

あなたはそれを固定し得るためにアプリのクリエイターに連絡することができない限り、あなたは(GET場合)URLからの生データをフェッチする必要があります:

$json = $_SERVER['QUERY_STRING'] 

...またはリクエストボディ(もしPOST ):

$json = file_get_contents("php://input"); 

しかし、それは(私がそう言うと思います)、そのデータは、トランスポートに壊れてしまったし、さらにjson_decode()が失敗したことは可能です。もしそうなら、追加の文字列の置換が必要になります。

0

は、私は、私は、データを取得していますますprint_r($ _ REQUEST)を書いていた場合は、

関連する問題