1

如果 JSON 字符串的名称中有空格"Some Items"(有更准确的术语吗?),在使用它之后如何在 PHP 中访问json_decode($json_string)它?从 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

4 回答 4

5

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

$data->{'Some Items'}
于 2012-08-22T14:35:52.380 回答
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);
于 2012-08-22T14:50:17.287 回答
1

尝试这个

$data->{'Some Items'};
于 2012-08-22T14:35:38.893 回答
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);
?>
于 2012-08-22T14:36:24.287 回答