告诉Json.Net在序列化对象时写单引号,而不是双引号



当调用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),这可能会给严格遵守标准的解析器带来问题。

相关内容

  • 没有找到相关文章

最新更新