PHPから送信されたJSONを解析しようとしています。PHPからAJAXに渡された無効なJSONを解析中にエラーが発生しました
JSON:
[{"id":"1","value":"1"},{"id":"4","value":"1"},{"id":"2","value":"1"},{"id":"3","value":"1"},{"id":"4","value":"1"}]
私はid
を取得し、別のJavaScript関数に渡すためにそれを解析しようとしていると私は継続的にPHPを呼んでいます。私は原因となった、JSON.stringify
を使用して、それを修正しようとした
id: id: id: html> 1id: 4id: 1id: 2id: 3id: 4id: id: id: >
:JSONは次のようになりますので
Uncaught SyntaxError: Unexpected token <
:私は$.ajax
、$.get
、$.getJSON
とJSON.parse
使用してparseJSON
を試したとき、私はこのエラーを取得しますこのエラー:
Cannot use 'in' operator to search for 'length' in and now I'm stuck and have no idea how to fix this.
test.php:
<?php
$link = mysql_connect("localhost", "root", "password");
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db = mysql_select_db("example");
$sql = "select * from data";
$x = mysql_query($sql);
$emparray = array();
while ($row = mysql_fetch_assoc($x)) {
$emparray[] = $row;
}
echo json_encode($emparray);
mysql_close($link);
?>
heatmap.html:
<script>
$(window).ready(function(){
$.ajax({
url:'test.php',
data:"{'id':'1', 'value':'1'}",
contentType: "application/json; charset=utf-8",
datatype: 'json',
success: function (data){setInterval(function(){
/* if I use parseJSON(data), I get "Unexpedted token <"
error */
$.each(data, function (id, value){ // error occures here
liveHeatMap(id); //Never called
});
}, 10000)}});
});
</script>
私はこの問題は、JSONが無効であることだと思います。私はとても多くのことを試してみましたが、他の多くの同様の問題を見ましたが、それでも解決できません。
「予期しないトークン<」エラーが発生しましたか?表示されない 'liveHeatMap()'メソッドの中で起こっているのですか?それ以前にエラーが起きたので呼び出されませんか? – nnnnnn
parseJSON(data)を使用したときにliveHeatMap()が呼び出されず、 "予期しないトークン<"が発生しました – user3505547
jQueryがレスポンスを解析して結果のオブジェクトを成功ハンドラに渡すため、parseJSON()を呼び出す必要はありません。 (あなたのAjaxオプションに 'dataType'を大文字の「T」で付けるべきですが)test.phpが正しいものを返すのは確かですか? (テストを入力した場合。あなたは何を得るのですか?) – nnnnnn