当前位置: 首页 > 面试题库 >

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

芮化
2023-03-14
问题内容

打电话时,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'}

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

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



 类似资料:
  • 问题内容: 手动编写HTML时,我总是使用单引号。我使用很多渲染的HTML,这些HTML总是使用双引号。这使我可以确定HTML是手工编写的还是生成的。这是一个好主意吗? 两者有什么区别?我知道它们都可以工作,并且得到所有现代浏览器的支持,但是在不同情况下,一个实际上比另一个更好吗? 问题答案: W3组织说: 默认情况下,SGML要求使用双引号(ASCII十进制34)或单引号(ASCII十进制39)

  • 问题内容: 这实际上有什么区别? 这工作正常: 但以下操作无效: 这是为什么? 问题答案: 那是因为双引号被认为是标准的,而单引号却没有。这并不是真正针对JQuery,而是关于JSON标准。因此,无论使用JS工具包,您都应该期待相同的行为。 值可以是带双引号的字符串,也可以是数字,也可以是true或false或null,或者是对象或数组。这些结构可以嵌套。

  • 我是gradle的新手,目前只是试图遵循教程,有很多次我看到单引号和双引号混杂在一起。我只是想知道是否有一个不同的时间应该使用一套比另一个。这方面的一个例子是教程的第6.12节--默认任务: 所以,我只想知道我是否应该注意这些差异,或者它们是否可以相互改变,我可以使用单引号或双引号时打印字符串在Gradle。

  • 问题内容: 我正在尝试学习编写查询的最佳方法。我也了解保持一致的重要性。到现在为止,我在没有任何实际考虑的情况下随机使用单引号,双引号和反引号。 例: 另外,在上述例子中,考虑到,,等可以是变量。 这是什么标准?你是做什么? 我已经在这里阅读了大约20分钟的类似问题的答案,但是似乎没有确切的答案。 问题答案: 反引号用于表和列标识符,但是仅当标识符是MySQL保留关键字时,或者当标识符包含空格字符

  • 问题内容: 像这样将变量(例如)连接到现有字符串(例如)中是否更好: 或将变量嵌入到字符串中,如下所示: 还是使用像这样的函数更好: 就处理器时间/效率而言,哪个更好? 问题答案: 进行测试的每个人都得出结论,使用单引号在性能上略有提高。最后,单引号仅导致串联,而双引号则迫使解释器解析变量的完整字符串。 但是,这样做对于最终版本的PHP来说增加的负担很小,以致在大多数情况下,结论是这并不重要。 因

  • 问题内容: Python中的单引号与双引号 问题答案: 我喜欢在用于插值或自然语言消息的字符串周围使用双引号,对于像符号一样小的字符串使用单引号,但是如果字符串包含引号或者我忘记了,则会违反规则。我对文档字符串使用三重双引号,对正则表达式使用原始字符串文字,即使不需要它们也是如此。 例如: