$ .ajax給我一個有關我的PHP腳本返回的一些JSON的解析錯誤。我用這個函數來擴展我的PDO語句,手動編碼JSON,希望爲一些非常大的數據集保存一些內存。PHP手冊JSON編碼 - parseError
爲什麼不能工作?如果我在我的編輯器中將響應文本複製/粘貼到JSON.parse中,它可以正常工作。所以這可能是一些逃避問題?另外,如果我取出前三行(編碼x,y和行)並將它返回一個數組,它就可以正常工作。只是不如我拼湊在一起的對象。
public function toJSON ($x, $y) {
echo "{x:" . json_encode($x) . ",";
echo "y:" . json_encode($y) . ",";
echo "rows:[";
$i = 0;
while ($row = $this->fetch(PDO::FETCH_ASSOC)) {
if ($i) echo ",";
echo json_encode($row, JSON_NUMERIC_CHECK);
if ($i > 0 && $i % 100 === 0) {
ob_flush();
flush();
}
$i++;
}
echo "]}\n";
}
我同意,很可能一個逃避問題,但我還是不明白你的推理不把你的數據放入一個數組中,並在數組中加入'json_encode()。 – Matt 2012-08-10 20:18:11
我認爲這對於服務器內存比對fetchAll更高效,然後進行編碼。特別是在處理大量請求時,我需要這麼做。 – 2012-08-10 20:27:29
我認爲@MattK有一個相當不錯的答案(如果他正確地確定了你的問題,那就是)。 – Matt 2012-08-10 20:28:35