代码之家  ›  专栏  ›  技术社区  ›  ilhan

PHP:JSON解码问题

  •  4
  • ilhan  · 技术社区  · 14 年前
    <?php
    $handle = fopen("https://graph.facebook.com/search?q=sinanoezcan@hotmail.com&type=user&access_token=2227472222|2.mLWDqcUsekDYK_FQQXYnHw__.3600.1279803900-100001310000000|YxS1eGhjx2rpNYzzzzzzzLrfb5hMc.", "rb");
    $json = stream_get_contents($handle);
    fclose($handle);
    echo $json;
    $obj = json_decode($json);
    print $obj->{'id'};
    ?>
    

    {"data":[{"name":"Sinan \u00d6zcan","id":"610914868"}]}

    它与JSON相呼应,但我无法打印id。

    我也试过:

    <?php
    $obj = json_decode($json);
    $obj = $obj->{'data'};
    print $obj->{'id'};
    ?>
    
    5 回复  |  直到 14 年前
        1
  •  3
  •   Felix Kling    14 年前

    data 是数组,所以应该是:

    print $obj[0]->{'id'};
    
        2
  •  4
  •   kennytm    14 年前

    请注意,JSON中有一个数组。

    {
        "data": [   // <--
          {
            "name": "Sinan \u00d6zcan",
            "id":   "610914868"
          }
        ]           // <--
    }
    

    $obj = $obj->{'data'}[0] 获取数组中的第一个元素。

        3
  •  3
  •   Tom Haigh    14 年前

    好像是钥匙 "data" 是一个对象数组,因此应该可以:

    $obj = json_decode($json);
    echo $obj->data[0]->name;
    
        4
  •  2
  •   pr1001    14 年前

    $obj->data $obj->id ?

    更新: $obj->data[0]->id 等等。

    PS你可能不想包括你的私人Facebook访问令牌在一个公共网站上像这样。。。

        5
  •  1
  •   cypher    14 年前

    $json = json_decode('{"data":[{"name":"Sinan \u00d6zcan","id":"610914868"}]}', true);
    

    然后您可以用以下内容回显id:

    var_dump($json['data'][0]['id']);
    

    如果没有协会,它必须是:

    var_dump($json->data[0]->id);