Search code examples
c#.netjsonescapingjson.net

How to use Json.NET StringEscapeHandling.EscapeNonAscii


Possible Duplicate:
Using StringEscapeHandling.EscapeNonAscii with Json.NET

The latest release of Json.NET (4.5.11) contains StringEscapeHandling.EscapeNonAscii, which escapes all non ASCII chars. But, I can't figure out how to use it. The docs don't seem to have any examples that I can find (only a release note announcing it).

Could someone show an example of serializing an object into a JSON string, using EscapeNonAscii?


Solution

  • Maybe this example can help

    string obj = "abcn\n\rüö&/<>";
    Console.WriteLine(Serialize(obj, StringEscapeHandling.Default));
    Console.WriteLine(Serialize(obj, StringEscapeHandling.EscapeHtml));
    Console.WriteLine(Serialize(obj, StringEscapeHandling.EscapeNonAscii));
    
    
    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();
    }