1

これは 2 つの部分からなる質問です。graph.facebook.comまず、ユーザーが入力できるパラメーターを使用して呼び出しを行うコードがあります。これは呼び出されると json を返します。

コードは以下のとおりです。

$RAW_DATA = json_decode(file_get_contents($URL_FINAL));

ブラウザで URL にアクセスすると、すべてがかなり整理されていますが、を使用するvar_dump()と、ブラウザに表示されない余分なフィールドがあるようにvar_dump()見えます。私のブラウザ?

次に、JSON を取得した後、JSON 内のデータのサブフィールドにアクセスしようとすると問題が発生することが判明しました。

例えば:

     {
   "data": [
      {
         "id": "11111111_111111111",
         "from": {
            "name": "John",
            "id": "111111111"
         },
         "story": "John shared We Are Change's photo.",
         "picture": "http://photos-e.ak.fbcdn.net/hphotos-ak-prn1/35552_10151311513538690_352701444_s.jpg",
         "link": "http://www.facebook.com/photo.php?fbid=10151311513538690&set=a.10150159213018690.338979.86518833689&type=1",
         "name": "Timeline Photos",
         "caption": "Happy election day everybody!",
         "properties": [
            {
               "name": "By",
               "text": "We Are Change",
               "href": "http://www.facebook.com/WeAreChange.org?ref=stream"
            }
         ] 
}

これは URL が返すものですが、これから「ストーリー」だけを引き出すにはどうすればよいでしょうか?

いくつかの異なる構文スタイルを試しましたが、何かを返す唯一のものは$RAW_DATA->{'data'};'Array' を出力するだけです。次のレイヤーに入ろうとすると、何も印刷できません。

4

2 に答える 2

0

これは、「データ」がオブジェクトの配列 (または連想配列) であるためです。

$RAW_DATA->{'data'}[0];

要素が 1 つしかないことが常にわかっている場合は機能しますが、それ以外の場合は $RAW_DATA->{'data'} をループする必要があります。

または単純化するには:

$RAW_DATA['data'][0]['story']
于 2012-11-06T16:12:33.877 に答える
0

次のことを試してください。

var_dump($RAW_DATA['data']);
var_dump($RAW_DATA['data']['id']);

これは $RAW_DATA を配列として扱い、機能します。

$RAW_DATA->data はそれをオブジェクトとして扱い、失敗します。

于 2012-11-06T16:12:48.743 に答える