如何使用Json.NET StringEscapeHandling.EscapeNonAscii

SRo*_*mes 4 .net c# json escaping json.net

可能重复:
将StringEscapeHandling.EscapeNonAscii与Json.NET一起使用

最新版本的Json.NET(4.5.11)包含StringEscapeHandling.EscapeNonAscii,它可以转义所有非ASCII字符.但是,我无法弄清楚如何使用它.这些文档似乎没有我能找到的任何示例(只有发布说明宣布它).

有人可以展示一个将对象序列化为JSON字符串的示例EscapeNonAscii吗?

I4V*_*I4V 7

也许这个例子可以帮助

string obj = "abcn\n\rüö&/<>";
Console.WriteLine(Serialize(obj, StringEscapeHandling.Default));
Console.WriteLine(Serialize(obj, StringEscapeHandling.EscapeHtml));
Console.WriteLine(Serialize(obj, StringEscapeHandling.EscapeNonAscii));
Run Code Online (Sandbox Code Playgroud)
public static string Serialize(object o,StringEscapeHandling stringEscapeHandling)
{
    StringWriter wr = new StringWriter();
    var jsonWriter = new JsonTextWriter(wr);
    jsonWriter.StringEscapeHandling = stringEscapeHandling;
    new JsonSerializer().Serialize(jsonWriter,o);
    return wr.ToString();
}
Run Code Online (Sandbox Code Playgroud)

  • 刚遇到同样的问题。有没有办法使用标准的 JsonConvert.Serialize 对象来保留其他设置? (2认同)