2012-05-30 86 views
1

我想解析一個JSON文件使用PHP和json_decode,但是我有difficulting這樣做時返回的JSON名稱空間。例如:PHP json_decode - 處理命名空間

$json_ouput = json_decode($json); 

foreach ($json_ouput->feed as $feed) { 

    /* 
    Here is the problem, $feed contains a namespaced key 
    $feed->ab:test->value // Does not work :(
    */ 
} 

請告訴我這裏最好的解決方案?

+2

'%json_output'?在那裏做'%'是什麼?你能向我們展示一些你正在使用的JSON嗎? – Sampson

+0

用$替換%,然後重試! –

+0

這看起來不像PHP。 –

回答

4

和往常一樣。

$feed->{'ab:test'}->value 
0

在你刪除一個變量,周圍的字符串中的字符之間的模糊以同樣的方式很多,你可以使用{}來拼湊一個訪問的一部分:

$json = '{"feed":[{"ab:test":{"value":"foo"}},{"ab:test":{"value":"bar"}}]}'; 
$json_output = json_decode($json); 

foreach ($json_output->feed as $feed) { 

    // Outputs: foo bar 
    print_r($feed->{'ab:test'}->value); 

} 

演示:http://codepad.org/MYYwOJj2