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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…