Facebook用户表fql到json_encode

时间:2013-03-22 12:20:35

标签: php facebook

我正在使用来自fql的用户表。我正在将数组传递给json_encode()。 Facebook json格式不是corrct,它是排除[]。如何在我的代码中添加它。

下面的代码是一个例子,但我不认同该代码。

用户表https://developers.facebook.com/docs/reference/fql/user

我想要名字,uid。

//to get album cover
    $fql2    =   "select  src from photo where pid = '" . $values['cover_pid'] . "'";
    $param2  =   array(
     'method'    => 'fql.query',
     'query'     => $fql2,
     'callback'  => ''
    );

    $fqlResult2   =   $facebook->api($param2);
    $jsarr  =   array();
    foreach( $fqlResult2 as $keys2 => $values2){
    }
    if ($values['name'] != 'Profile Pictures'){
        $jsarr['src'] = $album['src'];

            $count += 1;

    if ($count == 1){
    $outputStr .= "[";}
    else {
    $outputStr .= ",";}
    $outputStr .= json_encode($values2);
    }
}
$outputStr .= "]";
$outputStr = str_replace("{","[",$outputStr);
$outputStr = str_replace("}","]",$outputStr);
echo $outputStr;
}
?>

1 个答案:

答案 0 :(得分:1)

当您使用Facebook PHP SDK时,它会自动将返回的json对象解码为PHP数组。如果你需要一个json对象,你必须在完成处理后使用json_encode

你的php代码有一些主要问题。刚开始:

  • 您的foreach循环会在下一行}开始后立即结束。
  • 您在哪里定义变量$values$album
  • 您在$values2循环之外引用foreach
  • 您在第$outputStr .= "[";行附加了未初始化的变量。
  • 如果您传递json_encode()一个正确的php数据数组,它将生成一个完整的json对象。你不应该附加任何类型的括号。