3

私はこのjsonをデコードしようとしましたが、運が悪かったので、これらの角かっこは私を混乱させています。助けていただければ幸いです。これが私のjsonです。

[{"location":[{"building":["Default Building"],"name":"Default Location"}],"name":"Default Organization"}]

ありがとうございました

4

3 に答える 3

4

これを試して:

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
}
于 2013-03-21T07:13:34.557 に答える
1

あなたの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 を使用します。

于 2013-03-21T07:18:38.997 に答える
0

有効な 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
        )

)
于 2013-03-21T07:14:42.647 に答える