1

net.sf.json.JSONObject が私のJavaコードにあってはならない場所に余分なバックスラッシュを追加する理由を理解しようとして、私は髪を失っています:

JSONObject obj = new JSONObject ();
obj.element ("column_name", "<a href=\"#\" title=\"test\">Test !</a>");

出力します:

<a href=\"#\" title=\"test\">Test !<\/a>

</a> の近くに余分な「\」を付けます。

この動作を回避するにはどうすればよいですか?

4

2 に答える 2

2

私もこの問題に遭遇しました。問題は、私のコードが org.json.JSONObject と com.amazonaws.util.json.JSONObject の両方を使用していたことでした。2 つの間の変換は、文字列とエスケープ文字を作成していました。net.sf.json.JSONObject を使用していることを考えると、これも問題になる可能性があります。JSONObject の他のバージョンのインポートを確認してください。

于 2013-06-01T16:13:30.127 に答える
2

JSON の文字列をエスケープするためにおそらく同じ方法を使用します。スクリプト ブロック ( <script ...> ... </script>) で使用される JavaScript 文字列には、HTML 構文規則に従って文字列が含まれない場合があります</

これはあなたにとって何か違いがありますか?「ランダムな」文字をエスケープしても、JSON または JavaScript の文字列リテラルの意味は変わりません。文字列リテラル"/""\/"は、技術的には完全に同一です。

if ("/" === "\/") alert("The same!");

編集: ところで、JSON グラマーは、スラッシュ (solidus) をエスケープ可能な文字として明示的にリストしています。

于 2010-05-27T15:18:12.300 に答える