在序列化对象时,告诉json .net写一个单引号而不是双引号

当调用Newtonsoft.Json.JsonConvert.SerializeObject(myObject)我得到的键和值用双引号括起来,如下所示:

{"key" : "value"}

我希望它们用这样的单引号括起来:

{'key' : 'value'}

是否可以使用Json .Net?

是的,这是可能的。 如果显式使用JsonConvert.SerializeObject()而不是使用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'} 

小提琴: https : //dotnetfiddle.net/LGRl1k

请记住,在JSON中使用键和值的单引号被认为是非标准的(请参阅JSON.org ),并且可能会导致严格遵守标准的解析器出现问题。