告诉 Json.Net 在序列化对象时写单引号而不是双引号
Tell Json.Net to write a single-quote rather than a double quote when serializing objects
调用 Newtonsoft.Json.JsonConvert.SerializeObject(myObject)
时,我得到的键和值用双引号括起来,如下所示:
{"key" : "value"}
我希望它们像这样用单引号引起来:
{'key' : 'value'}
是否可以使用 Json.Net?
是的,这是可能的。如果您显式使用 JsonTextWriter
而不是使用 JsonConvert.SerializeObject()
,则可以将 QuoteChar
设置为单引号。
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());
输出:
{'key':'value'}
Fiddle: https://dotnetfiddle.net/LGRl1k
请记住,在 JSON 中对键和值使用单引号被认为是非标准的(参见 JSON.org),并且可能会给严格遵守标准的解析器带来问题。
调用 Newtonsoft.Json.JsonConvert.SerializeObject(myObject)
时,我得到的键和值用双引号括起来,如下所示:
{"key" : "value"}
我希望它们像这样用单引号引起来:
{'key' : 'value'}
是否可以使用 Json.Net?
是的,这是可能的。如果您显式使用 JsonTextWriter
而不是使用 JsonConvert.SerializeObject()
,则可以将 QuoteChar
设置为单引号。
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());
输出:
{'key':'value'}
Fiddle: https://dotnetfiddle.net/LGRl1k
请记住,在 JSON 中对键和值使用单引号被认为是非标准的(参见 JSON.org),并且可能会给严格遵守标准的解析器带来问题。