PHP json_decode - 处理命名空间

时间:2012-05-30 04:34:25

标签: php namespaces json

我正在尝试使用PHP和json_decode解析JSON文件,但是当返回的JSON是命名空间时,我正在做这个难以实现的。例如:

$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 个答案:

答案 0 :(得分:4)

一如既往。

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

答案 1 :(得分: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