如何使用 JSON.NET对'
to进行编码?\u0027
所以 json 字符串看起来像这样:
{"Id":8,"CompanyName":"Jane\u0027s bakery"}
样品电话
Newtonsoft.Json.JsonConvert.SerializeObject(your_object,
Newtonsoft.Json.Formatting.None,
new Newtonsoft.Json.JsonSerializerSettings
{ StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeHtml })
Json.NET 4.5 Release 11 添加了一个选项来控制字符串转义。选项之一是转义所有包含单引号的 HTML 字符。
我以为我有同样的要求,但@nick_w 的评论让我意识到我根本不需要转义单引号。
如果您在服务器端代码中将 json 生成为字符串,然后将其输出到客户端 javascript,因此可以将其转换为 javascript 对象,则不需要转义。
(使用 asp 样式语法显示的代码)
使用需要转义单引号的额外步骤...
var myData = JSON.parse('<%=myServerGeneratedStringWithSingleQuotesEscaped %>');
按原样使用 JSON...
var myData = <%=myServerGeneratedString %>;
Javascript 将解释一个不带引号的字符串,例如
[{"name":"Bill"}, {"name":"Ted"}]
作为 javascript 对象。
由于在处理服务器端和客户端字符串时很容易混淆,因此此提醒可能对某人有用。它可能适用于 OP,也可能不适用于 OP - 我敢肯定在很多情况下单引号确实需要转义。
Newtonsoft.Json.JsonConvert.SerializeObject(your_object,
Newtonsoft.Json.Formatting.None,
new Newtonsoft.Json.JsonSerializerSettings
{ StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeHtml })
是我在对象可能包含撇号时使用的,例如用户名。