如果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
答案 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);