Using StringEscapeHandling.EscapeNonAscii with Jso

2019-01-20 14:26发布

问题:

The latest release of Json.NET (4.5.11) contains StringEscapeHandling.EscapeNonAscii, which escapes all non ASCII chars. But, I can't figure out where to pass it as a parameter.

If I try:
JsonConvert.SerializeObject(myObj, Formatting.Indented, new JsonSerializerSettings { StringEscapeHandling = StringEscapeHandling.EscapeNonAscii});

then I get compile errors:
'Newtonsoft.Json.JsonSerializerSettings' does not contain a definition for 'StringEscapeHandling'

回答1:

Based on the documentation, this property is only available on JsonWriter and its inheritors.



回答2:

On more recent versions of Newtonsoft.Json this is available on JsonConvert.SerializeObject, passing a JsonSerializerSettings instance where StringEscapeHandling is StringEscapeHandling.EscapeNonAscii.