11

JSON.NETで'toをエンコードする方法は?\u0027

json文字列が次のようになるようにします。

{"Id":8,"CompanyName":"Jane\u0027s bakery"}
4

4 に答える 4

22

サンプルコール

 Newtonsoft.Json.JsonConvert.SerializeObject(your_object,
   Newtonsoft.Json.Formatting.None, 
   new Newtonsoft.Json.JsonSerializerSettings 
   { StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeHtml })
于 2014-02-03T22:10:55.017 に答える
7

Json.NET 4.5 リリース 11 では、文字列のエスケープを制御するオプションが追加されました。オプションの 1 つは、一重引用符を含むすべての HTML 文字をエスケープすることです。

JsonWriter.StringEscapeHandling

于 2012-11-26T02:22:57.497 に答える
2

同じ要件があると思いましたが、@ nick_w のコメントで、一重引用符をまったくエスケープする必要がないことに気付きました。

サーバー側のコードで json を文字列として生成し、それをクライアント側の JavaScript に出力して、JavaScript オブジェクトに変換できる場合、エスケープは必要ありません。

(asp スタイルの構文を使用して示されているコード)

一重引用符のエスケープが必要な追加の手順を使用しています...

var myData = JSON.parse('<%=myServerGeneratedStringWithSingleQuotesEscaped %>');

JSONをそのまま使用して...

var myData = <%=myServerGeneratedString %>;

Javascript は、次のような引用符で囲まれていない文字列を解釈します。

[{"名前":"ビル"}, {"名前":"テッド"}]

JavaScript オブジェクトとして。

サーバー側とクライアント側の文字列を扱う際に混同しやすいため、このリマインダーは誰かにとって役立つかもしれません。OPに当てはまる場合と当てはまらない場合があります-単一引用符を本当にエスケープする必要がある場合が多いと思います。

于 2014-05-20T15:16:20.103 に答える