1

我正在尝试使用 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 :(
   */
}

这里最好的解决方案是什么?

4

2 回答 2

4

一如往常。

$feed->{'ab:test'}->value
于 2012-05-30T04:37:36.367 回答
0

与消除变量和周围字符串字符之间的歧义的方式非常相似,您可以使用{and}将访问器的一部分拼凑在一起:

$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

于 2012-05-30T04:51:28.947 回答