2016-06-13 11 views
0

jsonデータをループしようとしました.SSEが投稿しました。SSE出力からのJSON解析

window.onload = function(){ 
 
     var source = new EventSource("update.php"); 
 
     source.onmessage = function(event){ 
 
\t \t \t var data = JSON.parse(event.data); 
 
\t \t \t for (var key in data) { 
 
\t \t \t \t if (data.hasOwnProperty(key)) { 
 
\t \t \t \t \t var val = data[key]; 
 
\t \t \t \t \t alert(val); 
 
\t \t \t \t } 
 
\t \t \t } 
 
     } 
 
    }

私のJSON出力は、この

データのようになります。私はカント{ "P2H"、 "p2r3"、 "s8t1c9"、 "L2F"}

私の人生は、私がこれを行うことができないものを理解します。基本的に、これらの値のそれぞれにループして警告する必要があります。しかし、これは良い第一歩です。

+0

あなたのonMessageイベントが実際に発射されましたか?あなたは受け取っているものを見るためにconsole.log(イベント)を試しましたか? – baynezy

答えて

-1

EventSource("update.php")少し疑わしいです。 JSはそのようなファイルを開かないでしょう。おそらくEventSource(<?php file_get_contents("update.php"); ?>)を試してみてください。これによると

https://developer.mozilla.org/en-US/docs/Web/API/EventSource

それはUSVString " https://developer.mozilla.org/en-US/docs/Web/API/USVString

を探している。また、あなたのJSONは有効な形式ではありません。 はそのため{"data": {"p2h","p2r3","s8t1c9","l2f"}}

する必要があり、私はこのようなもので、それをチェックしたい:

try { data = JSON.parse(data); } catch(e) {}

+0

あなたが違いを示唆していないように、jsonを再フォーマットしようとしました。また、evensourceはphpをうまく開きます。私は単純なメッセージを送信することができ、それらのディスプレイを持っている問題は、私は – user3005775

+0

彼のEventSourceの使用がうまくありますように複数のデータ変数を送信する必要があるときです。 – baynezy

関連する問題