3

私はリモートURLからこのようなjsonを持っています

[{"Name":"Abcd","Alias":["Bcde","Cdef","Fghi","Jklm","Load more"]}]

次のように要素エイリアスを出力しようとすると、「非オブジェクトのプロパティを取得しようとしています...」などのエラーが発生します。

<?php

$json='[{"Name":"Abcd","Alias":["Bcde","Cdef","Fghi","Jklm","Load More"]}]';
$obj=json_decode($json);
foreach($obj->Alias as $val) // Error: Trying to get property of non-object<br/>
echo $val.'<br/>';
?>

デコードされたjson配列は次のとおりです

Array
(
    [0] => stdClass Object
        (
            [Name] => Abcd
            [Alias] => Array
                (
                    [0] => Bcde
                    [1] => Cdef
                    [2] => Fghi
                    [3] => Jklm
                    [4] => Load More
                )

        )

)

また、最後の「エイリアス」要素(さらに読み込む)を結果から除外したいと思います

Plz...事前に感謝を助けてください

4

3 に答える 3

2

array_popを使用して、最後の要素をポップアウトします。

<?php

$json='[{"Name":"Abcd","Alias":["Bcde","Cdef","Fghi","Jklm","Load More"]}]';
$obj=json_decode($json);
$aliases = $obj[0]->Alias;
array_pop($aliases);
foreach($aliases as $alias) print $alias;

?>
于 2012-05-14T17:01:15.223 に答える
0
$str = '[{"Name":"Abcd","Alias":["Bcde","Cdef","Fghi","Jklm","Load more"]}]';
print_r(json_decode($str, true));

http://php.net/manual/en/function.json-encode.phpの関数の引数に関するドキュメントを参照してください

于 2012-05-10T13:39:37.473 に答える
0

これが私の解決策であり、オブジェクトを連想配列に変換する必要はありません

   <?php

    $json='[{"Name":"Abcd","Alias":["Bcde","Cdef","Fghi","Jklm","Load More"]}]';
    $obj=json_decode($json);
    $obj = $obj[0];
    foreach($obj->Alias as $val)
    echo $val.'<br/>';

    ?>

私はここで非常に新しいので、投稿の6時間後にのみ回答を投稿することができました:)

于 2012-05-14T05:29:35.633 に答える