2013-03-22 28 views
0

我正在使用fql.I的用戶表傳遞數組到json_encode()。 Facebook的json格式不正確,它不包括[]。我如何在我的代碼中添加這個。Facebook的用戶表fql到json_encode

下面的代碼是一個例子,但我不站下的代碼。

用戶表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

在第一個FB是用PHP,所以,如果他們做了一些在編碼JSON不正確應該是很奇怪嗎? – EaterOfCode 2013-03-22 12:30:04

回答

1

當您使用Facebook PHP SDK時,它會自動將返回的json對象解碼爲一個PHP數組。如果您需要一個json對象,那麼在完成處理後,您必須使用json_encode

你已經有了一些主要問題,你的PHP代碼。剛上手:因爲它與}下一行開始

  • foreach循環儘快結束。
  • 你在哪裏定義變量$values$album
  • 你引用$values2以外的foreach循環。
  • 您正在追加到您的線路上未初始化的變量$outputStr .= "[";
  • 如果你通過json_encode()一個適當的php數組數組,它​​將創建一個完整的json對象。你不應該需要追加任何形式的括號。
+0

:我正在使用FQL,所以輸出將是數組,我將這個數組傳遞給json_encode,但json的格式不正確。我如何格式化它。這是我的迴應{ 「UID」: 「4」, 「名」: 「RAM \ u00fcrmeg \ u00f6zl \ u00fcer」, 「pic_big」:「HTTP:\/\/profile.ak.fbcdn.net \/hprofile -ak-prn1 \ /4149__3333_n.jpg「} {」uid「:」5「, 」name「:」ram \ u00fcrmeg \ u00f6zl \ u00fcer「, 」pic_big「:」http:\/\/profile。 ak.fbcdn.net \/hprofile-ak-prn1 \ /4149__3333_n.jpg「} {」uid「:」6「, 」name「:」ram \ u00fcrmeg \ u00f6zl \ u00fcer「, 」pic_big「:」http :\/\/profile.ak.fbcdn.net \/hprofile-ak-prn1 \ /4149__3333_n.jpg「} 我想,[]缺失。 – ram 2013-03-22 16:56:52