0

$ .ajaxは、PHPスクリプトによって返されるJSONに関する解析エラーを表示します。非常に大きなデータセット用にメモリを節約することを期待して、PDOステートメントを拡張するこの関数を使用してJSONを手動でエンコードしています。

なぜこれが機能しないのですか?応答テキストをコピーしてエディターのJSON.parseに貼り付けると、正常に機能します。それで、それはおそらくいくつかの脱出の問題ですか?

また、上位3行(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";
}
4

1 に答える 1

1

正しい形式で入力してもよろしいですか?

名前は文字列であるため、引用符で囲む必要があります。値が文字列の場合は、引用符で囲む必要もあります。

元/

echo "{x:" . json_encode($x) . ",";

そのようにする必要があります:

echo '{"x":' . json_encode($x) . ',';

于 2012-08-10T20:25:25.887 に答える