2012-08-22 42 views
0

如果JSON字符串中有空格在其名稱"Some Items"訪問JSON輸出(有沒有這個更準確的術語?),你如何使用它json_decode($json_string)後訪問它在PHP?甚至需要從API返回的數據這個名字呢?用空格

JSON字符串

{"Some Items":[{"post_id":"1284"},{"post_id":"1392"},{"post_id":"1349"}]} 

這些不工作

$data = json_decode($json_string); 
$data = $data->"Some Items"; // invalid PHP 
$data = $data["Some Items"]; // Cannot use object of type stdClass as array 
+0

的可能重複[錯誤時從json_decode GET值()在PHP?](http://stackoverflow.com/questions/11480954/error-when-get-value-from-json-decode-in -php)。也見[例如,手冊json_decode在#2](http://php.net/manual/en/function.json-decode.php#example-3470)。 – mellamokb

回答

1

如果你不喜歡,你可以使用動態訪問業務的大括號的想法:

$someitems = "Some Items"; 
var_dump($data->$someitems); 

或者,你可以投$數據到陣列並使用方括號:

$data = (array)json_decode($json_str); 
var_dump($data['Some Items']); 

json_decode有一個開關,這樣你就不需要使用鑄造。

$data = json_decode($json_str, true); 
var_dump($data); 
0

試試這個

$data->{'Some Items'}; 
3

您需要使用大括號($object->{'...'})語法:

$data->{'Some Items'} 
0

試一下

<?php 
$json = '{"Some Items":[{"post_id":"1284"},{"post_id":"1392"},{"post_id":"1349"}]}'; 
$decoded = json_decode($json); 

// for example 
echo($decoded->{"Some Items"}[0]->post_id); 
?>