使用空格访问JSON输出

时间:2012-08-22 14:30:28

标签: php json

如果JSON字符串的名称中有空格"Some Items"(对于这个字段有更准确的术语吗?),在使用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

4 个答案:

答案 0 :(得分:4)

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

$data->{'Some Items'}

答案 1 :(得分:1)

试试这个

$data->{'Some Items'};

答案 2 :(得分:1)

试试

<?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);
?>

答案 3 :(得分:1)

如果你不喜欢花括号的想法,你可以使用动态访问者业务:

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

或者,您可以将$ data转换为数组并使用方括号:

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

json_decode有一个开关,因此您无需使用强制转换。

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