2016-07-24 16 views
2

webRTCオファーの場合、「26番のJSONで予期しないトークンが発生しました」というエラーが表示されます。私はdbから申し出を受け取り、プレーンテキストとしてJSONオブジェクトに解析するためにajax呼び出しを使用しています。文字列を解析しようとすると、「JSONで予期しないトークン」エラーが発生します。ここでJSON.parse()中にJSONで予期しないトークンが発生しました

はプレーンな文字列

{"type":"offer","sdp":"v=0 
o=- 552724588234335198 2 IN IP4 127.0.0.1 
s=- 
t=0 0 
a=msid-semantic: WMS 
m=application 52731 DTLS/SCTP 5000 
c=IN IP4 192.169.2.55 
a=candidate:2144433521 1 udp 2122257663 2002:c0a9:237::c0a9:237 52729 typ host generation 0 network-id 4 
a=candidate:1068658286 1 udp 2122189567 2001::9d38:90d7:88a:6fc:52ce:a035 52730 typ host generation 0 network-id 7 
a=candidate:398976708 1 udp 2122129151 192.169.2.55 52731 typ host generation 0 network-id 3 
a=candidate:827492737 1 tcp 1518277887 2002:c0a9:237::c0a9:237 9 typ host tcptype active generation 0 network-id 4 
a=candidate:1899074206 1 tcp 1518209791 2001::9d38:90d7:88a:6fc:52ce:a035 9 typ host tcptype active generation 0 network-id 7 
a=candidate:1497635380 1 tcp 1518149375 192.169.2.55 9 typ host tcptype active generation 0 network-id 3 
a=ice-ufrag:EHtolesxvVPp2FqI 
a=ice-pwd:CrcvrgKTp6lUbUA81nlGeTFr 
a=fingerprint:sha-256 01:39:AF:9A:67:87:F9:52:E9:20:3C:0D:4A:8B:A0:22:E2:D1:01:65:51:32:E1:5B:8B:9E:BC:CA:6E:DF:E2:46 
a=setup:actpass 
a=mid:data 
a=sctpmap:5000 webrtc-datachannel 1024 
"} 

と私は生のテキストデータを取得し、別のアプリケーションで前にコピー&ペーストの方法を使用して成功を収めている

$.ajax({ 
    url: "./php/actions.php", 
    type: "post", 
    dataType: "text", 
    data: {type:'retrieve', roomid:roomid}, 
    success: function(data){ 
     //data is plain text from string of offer retrieved from db 
     $('.termp').text(data); //used to check raw text data for now 
     var offerSDP = JSON.parse(data); //returning error when trying to convert to json 
     remoteConn.setRemoteDescription(new RTCSessionDescription(offerSDP)); //needs an object 
    } 
}); 

コードとしてJSONでありますテキスト領域とJSON.parse(text-area.val())に貼り付け、sessionDescriptionを正常に設定しますが、メソッドは一見同じですが、異なる結果が得られます。

+0

あなたは生のJSON文字列内のコメントを削除するために質問を更新することができますか? –

+0

正確な 'json'レスポンスを投稿してください。 –

+0

全文文字列レスポンスが投稿されました。後で解析できるように、成功時に文字列を返すためにajaxを使用しました。これは、データ内でjsonオブジェクトを返そうとした後ですが、渡された引数がオブジェクトではないとRTCSessionDescription(データ)は機能しません。 –

答えて

2

JSONでは、改行文字は使用できません。それを\nに置き換える必要があります。

このトピックを見てみてください。私たちは、文字列が正確に何を見ることができるようにMultiline strings in JSON

+0

私は2つのアプリケーションを比較するので、 "\ n"、 "\ r"という文字があります。どのようにそれらを出力するか、または文字列を受け取ったとき、または特殊文字を保持しているオブジェクトをデータベースにどのように送るのでしょうか? –

+0

'JSON.parse(data.replace(/ [\ r]?[\ n]/g、 '\\ n')) ' –

+0

はい、この解決策は機能しました。それは、改行文字がそこに置かれているかのようですが、jsonに変換するときには、\ nを明示的に指定する必要があります。だから私は新しい行と\ nの違いがあると仮定しますか? –

関連する問題