PHPを使用してJSONリターンを作成しました(実際にはかなりの数です)。JSONLintに従ってJSONはすべて有効であり、データは私の小さなiPhoneアプリで機能しますが、返されたJSONフィードごとに291行の空白行が表示されます、すべての JSON データを含む 1 行...
JSON の戻り値の例は次のとおりです。
{"EOF":"1","C":[{"T":"0 min","D":"0sec","MID":"","M":"","ML":"","C":"No comments"}]}
...この前に 291 の空白行があります...そして空白とは、完全に空白、スペース、文字、まったく何もないことを意味します。
他の誰かがこれを経験したことがありますか? もしそうなら、どのように対処しましたか?
**** 更新 **** コードは次のとおりです。
基本的に、MySQL データベースから結果セットを取得し、何も返されない場合は上記の JSON を返します... MySQL クエリがデータを返すかどうかに関係なく、空白の 291 行を取得します。データベースに 1 つまたは 2 つの行があるアイテムもあれば、500 を超えるアイテムがあるアイテムもあり、すべてのデータが返され、正しく検証されます。
$jsonDetails='{"EOF":"'.$EOF.'","C":[';
while ($commentRow = mysql_fetch_row($allComments)) {
$commentMakername=get_Username($commentRow[2]);
$MakerLevel=get_UserLevel($commentRow[2]);
$jsonDetails.='{';
$jsonDetails.='"T":"'.strtolower($commentRow[3]).'",'; $jsonDetails.='"D":"'.human_time_diff( $commentRow[5] ).'",';
$jsonDetails.='"MID":"'.$commentRow[2].'",';
$jsonDetails.='"M":"'.ucfirst($commentMakername).'",';
$jsonDetails.='"ML":"'.$MakerLevel.'",'; $jsonDetails.='"C":"'.$commentRow[6].'"';
$jsonDetails.='},';
}
if(strlen($jsonDetails)>=17){
$jsonDetails=substr($jsonDetails,0,-1).']}';
}else{$jsonDetails='{"EOF:"1","C":[{"T":"0 min","D":"0sec","MID":"","M":"","ML":"","C":"No comments"}]}';}
return $jsonDetails;