私はこのjsonをデコードしようとしましたが、運が悪かったので、これらの角かっこは私を混乱させています。助けていただければ幸いです。これが私のjsonです。
[{"location":[{"building":["Default Building"],"name":"Default Location"}],"name":"Default Organization"}]
ありがとうございました
これを試して:
var_export( json_decode( '[{"location":[{"building":["Default Building"],"name":"Default Location"}],"name":"Default Organization"}]' ) );
json_decode
配列またはを返しobject
ます。なしで印刷できvar_export
ますecho
値にアクセスできます:
$items = json_decode('[{"location":[{"building":["Default Building"],"name":"Default Location"}],"name":"Default Organization"}]');
foreach( $items as $each ){
echo $each->location[0]->building[0];
echo '<hr />';
echo $each->location[0]->name;
echo '<hr />';
echo $each->name; // default organization
}
あなたのjsonは有効です。配列内のオブジェクトにアクセスしているときに問題に直面している可能性があります。
print_r は常に配列構造を理解するための良い友達です。これを試して
$json = '[{"location":[{"building":["Default Building"],"name":"Default Location"}],"name":"Default Organization"}]';
$decoded = json_decode($json);
echo '<pre>';
print_r($decoded);
$location = $decoded[0]->location;
$building = $location[0]->building[0];
$name = $location[0]->name;
0 の位置にあるオブジェクトは最初の項目のみを返します。配列に複数の値がある場合は、foreach を使用します。
有効な JSON のようです。
$my_json = '[{"location":[{"building":["Default Building"],"name":"Default Location"}],"name":"Default Organization"}]';
$my_data = json_decode($my_json);
print_r($my_data);
// 出力
Array
(
[0] => stdClass Object
(
[location] => Array
(
[0] => stdClass Object
(
[building] => Array
(
[0] => Default Building
)
[name] => Default Location
)
)
[name] => Default Organization
)
)