2009-11-17 50 views
1

從JSON另一個對象裏面的成員,我有一個JSON字符串這樣如何訪問一類是使用PHP

$test='{"var1":null,"var3":null,"status":{"code":150,"message":"blah blah"}}'; 

我要訪問功能的狀態代碼。 這是我嘗試過的:

$responseObj=jsonService->decode($test);//this converts the string into an Object 

echo $responseObj->status->code; 

現在這不工作。有人能指引我走向正確的方向嗎?我認爲

$responseObj->status->code 

是錯誤的語法使用。什麼是正確的語法。 我使用PHP 5.1.6,這沒有內置的json_decode函數。所以我使用第三方類進行轉換。我用下面的第三方類

+0

有什麼錯誤? – Ryall 2009-11-17 12:51:11

+1

你確定它返回一個對象?不是一個關聯數組?試過'$ responseObj ['status'] ['code']'還沒有? – Lukman 2009-11-17 12:56:40

回答

2

你應該給PHP的json_decode()一試:

$test='{"var1":null,"var3":null,"status":{"code":150,"message":"blah blah"}}'; 
$responseObj = json_decode($test); 
echo $responseObj->status->code; 

對於梨的Services_JSON類(Documentation):

// create a new instance of Services_JSON 
$jsonService = new Services_JSON(); 

$test='{"var1":null,"var3":null,"status":{"code":150,"message":"blah blah"}}'; 
$jsonService->decode($test); 
echo $responseObj->status->code; 
+0

@ blockhead,@ kelix,@ crem0r:json_decode是一個相當新的功能。它不能在PHP 5.1.6上使用,因此必須使用第三方類來進行JSON解碼和編碼。 – Saeros 2009-11-17 12:54:59

+0

那麼你能告訴我們你正在使用的庫和出現的錯誤嗎?你的語法現在是正確的,我可以看到,所以它可能是內部的東西。 – Ryall 2009-11-17 12:57:54

+1

我編輯過的問題包括包的名稱和有關該類的其他詳細信息。 – Saeros 2009-11-17 13:06:48

2

不知道你在做什麼jsonService正在做,但這個工作對我來說:

$json = '{"var1":null,"var3":null,"status":{"code":150,"message":"blah blah"}}'; 

$result = json_decode($json); 

echo $result->status->code; 
3

您可以使用json_decode()這項任務。此外,您輸入的字符串應該有引號:

$test='{"var1":null,"var3":null,"status":{"code":150,"message":"blah blah"}}'; 

$responseObj = json_decode($test); 

echo $responseObj->status->code;