When calling Newtonsoft.Json.JsonConvert.SerializeObject(myObject)
I'm getting keys and values enclosed in double quotes like this:
{"key" : "value"}
I would like them to be enclosed in single-quotes like this:
{'key' : 'value'}
Is it possible to do using Json.Net?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With