2016-06-14 26 views
1

に改行文字で例外を提供します。しかし、試してみると例外が出る\nJSON.parseは、私は次の文字列を取得していた文字列

私はthisを見たけど助けになりませんでした。それから、

は、私がvar j=JSON.parse(JSON.stringify(str))

を試してみました。しかし、私はまだその代わり、私は\\n作品を使用して知っているが、事は、それが新しい上で印刷されませんされてtypeof j

を使用するオブジェクトの文字列を取得しています私は値を使用する必要があります。

更新: OK、私はちょうど\\nが動作していることを認識しました。 は、私が\\n\nを変換するためにこれを使用しています:

var str='{"message":"hello\nworld"}'; 
str=str.replace(/\n/g, "\\\\n").replace(/\r/g, "\\\\r").replace(/\t/g, "\\\\t"); 

var json=JSON.parse(str); 

console.log(json.message); 

誰かがそれを修正してくださいことはできますか?

+0

なぜ「
」タグを使用しないのですか? –

+3

_ "' \\ n'を使っていることが分かりますが、値を使う必要があるときに新しい行には表示されません。 "_これは修正する必要がある部分です。' \\ n'は'' message "'に新しい行が含まれていることを前提にして、ここで修正してください。新しい行自体はJSONでは無効です。 –

+1

@PawanNogariyaその文字列、私はそれを使用してhtmlタグを形成していません。私は私のwebserviceでデータを取得しています。 –

答えて

1

\n\\nをエスケープするのが適切でした。あなたのコードでは、置換呼び出しが間違っていました。スラッシュが少なくて済みます。あなたのコードを更新しました:

var str='{"message":"hello\nworld"}'; 
str=str.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t"); 

var json=JSON.parse(str); //No errors due to escaping 

これを印刷すると、テキストが異なる行に分割されて表示されます。

console.log(json.message); 
+0

その文字列、私はそれを使用してHTMLタグを形成していないよ。私は私のwebserviceでデータを取得しています。私は自分のデータベースにそれを保存する必要があります。ブラウザに表示するためのものではありません。 –

+0

データベースに保存できますが、問題はありません。あなたのブラウザに表示されないようにそれを解決したい場合は、それを印刷する前に私の答えに書いた機能を使用してください。例: 'document.write(nl2br(" hello \ nworld "))' – EnKrypt

+0

私の全体的な目的は非常に異なります。私がやろうとしていることを説明するには大きすぎます。問題のUPDATEのコードを正常に動作させるだけです。 –

関連する問題