我正在使用来自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;
}
?>
答案 0 :(得分:1)
当您使用Facebook PHP SDK时,它会自动将返回的json对象解码为PHP数组。如果你需要一个json对象,你必须在完成处理后使用json_encode
。
你的php代码有一些主要问题。刚开始:
foreach
循环会在下一行}
开始后立即结束。$values
和$album
?$values2
循环之外引用foreach
。$outputStr .= "[";
行附加了未初始化的变量。json_encode()
一个正确的php数据数组,它将生成一个完整的json对象。你不应该附加任何类型的括号。