2013-07-23 56 views
0

我通過POST傳遞參數,參數是JSON編碼。後來我捕捉到的參數,它在一個PHP文件進行解碼,如下所示:以各種格式處理PHP中的JSON編碼參數

$entityBody = file_get_contents('php://input'); 
$entityBody = json_decode($entityBody, true); 

但問題是,它只有當鑰匙在雙引號像下面僅適用:

{ 
"id": "5", 
"name": "abcd", 
"imei": "1234" 
} 

當鍵是單引號,如下面的代碼不起作用。

{ 
'id': "5", 
'name': "abcd", 
'imei': "1234" 
} 

我是Json和PHP的新手。所以如果任何人給我想法如何處理所有這些案件,我將非常感激。

+0

在運行json_decode之前,您可以運行一個過濾器來將''''更改爲''''或者您可以確保原始數據正確發送 – DevZer0

+0

AFAIK單引號不是有效的JSON,因此修復發佈數據的代碼。 – Jon

+0

對不起,我不明白,你能舉一個例子嗎? – Joy

回答

0

JSON中的所有字符串必須被雙引號。單引號字符串或鍵不是有效的JSON。理想情況下,你不應該打擾無效的JSON。這就是標準適用的,所以我們都可以使用標準化的數據格式,不需要猜測。

+0

在JSON或PHP中是否有任何函數,這樣我可以使JSON參數有效如果編碼是錯誤的,如上所示 – Joy

+0

不,因爲你正在處理的是**不是JSON。**它是你編寫的不是JSON的格式,所以沒有現有的函數可以工作 用它。確保你獲得有效的JSON。 – deceze

0

您可能會發現JSON林特一個有用的工具:http://jsonlint.com/

您可以複製/粘貼JSON文本到它,它會告訴你它是否有效或不和,如果不是,糾正一下。當我遇到一些JSON時,我總是首先使用它。