2017-01-28 119 views
2

我正在一個項目上工作。其中我從android或iOs應用程序獲取json字符串格式的數據。我正在使用json解碼來解碼它。但我沒有得到任何數組。如何解碼json字符串?

ioS和Android通過URL調用URL並通過REQUEST模式傳遞數據。網址如下:

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}"; } 

在PHP中,我讀的數據如下:

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

但URL呼叫後,我收到以下錯誤:

消息:未定義指數:Add_Cart

請幫我解決這個問題。提前致謝。

回答

0

這意味着Add_Cart不是您的$ _REQUEST數組中的索引。

爲什麼不使用類似print_r($_REQUEST)的內容來檢查請求的內容?

+0

。 –

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編碼函數,並將Add_Cart作爲json的變量名稱。 (在JSON沒有包裝它,因爲它)

0

此的iOS/Android應用程序在發送不使用任何已知的或有效的查詢字符串格式相當錯誤的URL。這意味着你不能依靠PHP將它解碼爲$_GET$_REQUEST

除非你能聯繫應用創造者得到它固定的,你必須從URL中提取的原始數據(如GET):

$json = $_SERVER['QUERY_STRING'] 

...或請求主體(如POST ):

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

但是,它仍然是可能的(我說很可能)數據已經被損壞了交通和進一步json_decode()失敗。如果是這樣,你需要額外的字符串替換,試圖把它固定。

0

嘗試這個

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} 

如果我寫的print_r($ _ REQUEST),然後我得到的數據你可能會錯過get方法關鍵