1

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

4 に答える 4

5

中括弧($object->{'...'})構文を使用する必要があります。

$data->{'Some Items'}
于 2012-08-22T14:35:52.380 に答える
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 に答える
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 に答える