Tell Json.Net to write a single-quote rather than a double quote when serializing objects

前端 未结 1 1985
梦毁少年i
梦毁少年i 2020-12-05 22:39

When calling Newtonsoft.Json.JsonConvert.SerializeObject(myObject) I\'m getting keys and values enclosed in double quotes like this:

{\"key\" : \"

相关标签:
1条回答
  • 2020-12-05 23:13

    Yes, this is possible. If you use a JsonTextWriter explicitly instead of using JsonConvert.SerializeObject(), you can set the QuoteChar to a single quote.

    var obj = new { key = "value" };
    
    StringBuilder sb = new StringBuilder();
    using (StringWriter sw = new StringWriter(sb))
    using (JsonTextWriter writer = new JsonTextWriter(sw))
    {
        writer.QuoteChar = '\'';
    
        JsonSerializer ser = new JsonSerializer();
        ser.Serialize(writer, obj);
    }
    
    Console.WriteLine(sb.ToString());
    

    Output:

    {'key':'value'}
    

    Fiddle: https://dotnetfiddle.net/LGRl1k

    Keep in mind that using single quotes around keys and values in JSON is considered non-standard (see JSON.org), and may cause problems for parsers that adhere strictly to the standard.

    0 讨论(0)
提交回复
热议问题