0

こんにちは、オブジェクトの json 配列をループしようとしていますが、文字通り何も返されません。これが私の試みです。

 $jsonurl = 'http://eol.org/api/search/1.0.json?q='."$searchvar".'&page=1&exact=false&      filter_by_taxon_concept_id=&filter_by_hierarchy_entry_id=&filter_by_string=&cache_ttl=';
 $json = file_get_contents($jsonurl,0,null,null);
 $json_output = json_decode($json);

foreach ($json_output->dataObjects as $objects){
    print "{$objects->title}\n";
}

これが実際のjson配列の構造です。

array

0    object
     id     19076
     title  Vulpes
     link   http://eol.org/19076?action=overview&controller=taxa
     content    Arctic foxes; kit foxes; red foxes; red fox
4

3 に答える 3

1

試すことができるもう 1 つのアプローチは、json をオブジェクトではなく配列にデコードすることです。

$json_output = json_decode($json,true);

json_decode() 関数で変数を true として渡すと、簡単にトラバースできる配列として json_output を取得できます。

そうしないと

あなたはループすることができます

foreach ($json_output->results as $object){
    echo "{$object->title}\n";
}

http://php.net/manual/en/function.json-decode.phpにある json_decode() 関数の php マニュアル ガイドを参照してください。

于 2013-07-03T05:46:35.573 に答える
0

これがお役に立てば幸いです

キャストを入力してみてくださいobject

foreach ($json_output->dataObjects as $objects){

もっとお手伝いできることがあれば教えてください

于 2013-07-03T05:35:01.413 に答える