2016-07-17 13 views
0

JSON値は動的に生成され、その値はユーザー入力に基づいているため、文字列に"などの許容できない文字を入力するとjsonが無効になります。以下のようなjson形式を保持するためのJSONデータのエンコード

何か:

{ 
    "tag" : "demo", 
    "value": "user " input" 
} 

は、エンコードまたはJSON値をエスケープする方法はありますか?

+3

ええと、JSON APIを使用します。 * JSONを手動で文字列として構築しようとはしません。これは、XMLの場合と同じように行います。今、あなたは実際にJavascriptかC#で尋ねていますか?私はC#で例を挙げることができますが、私はJavascriptで行うことがより難しいでしょう。 –

+0

@JonSkeet私はC#とjavascriptの両方で使っています。いくつかのAPIをお勧めしますか? –

+1

C#では、私があなたの場合はJson.NETを使用します。私は適切な勧告がJavascriptで何になるかはわかりませんが、ちょっとしたリサーチではたくさんのオプションが見つかるはずです。 –

答えて

1

これにはJSON.stringifyを使用してください。エスケープ文字\が自動的に追加されます。続き

はサンプルです:

function processValues(){ 
 
    var v1 = document.getElementById("txt1").value; 
 
    var v2 = document.getElementById("txt2").value; 
 
    var o = { 
 
    value1: v1, 
 
    value2: v2 
 
    }; 
 
    var result = JSON.stringify(o); 
 
    console.log(result); 
 
} 
 

 
function test1(){ 
 
    document.getElementById("txt1").value = "Hello"; 
 
    document.getElementById("txt2").value = 'World! "test"'; 
 
} 
 

 
test1();
<input type="text" id="txt1"/> 
 
<input type="text" id="txt2"/> 
 
<button onclick="processValues()">Create JSON string</button>

+0

あなたの答えに感謝します。 c# –

+0

経由でサーバー側で生成されたjsonに対して何をすべきかオブジェクトを送信している場合、問題はありません。文字列を送る場合は、 'JSON.parse'を使う必要があります。注意:MVC 4+を使用している場合は、データ駆動型コントローラであるWebApiを調べることができます。そうでなければ、リストをJSONオブジェクトに変換するのに役立つライブラリがたくさんあります – Rajesh

関連する問題