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

Newtonsoft.Json无需转义反斜杠的SerializeObject

花飞尘
2023-03-14
问题内容

给定代码:

dynamic foo = new ExpandoObject();
foo.Bar = "something";
string json = Newtonsoft.Json.JsonConvert.SerializeObject(foo);

输出如下:

"{\"Bar\":\"something\"}"

调试大型json文档时,很难读懂-
使用Newtonsoft.Json的内置功能(不是正则表达式或可能会破坏事情的hack),可以通过任何方式使输出字符串成为有效值:

{Bar: "something"}

问题答案:

查看json值时,在调试器中看到的是应该在C#文件中使用以获得相同值的字符串值。

确实可以替换

dynamic foo = new ExpandoObject();
foo.Bar = "something";
string json = Newtonsoft.Json.JsonConvert.SerializeObject(foo);

string json = "{\"Bar\":\"something\"}";

而不更改程序的行为。

因此,要获得不同的值,您应该更改JsonConvert的工作方式,但是JsonConvert符合JSON标准,因此就算了!

如果您实际上并没有序列化ExpandoObject(也没有控制之外的任何其他密封类),则可以在json中序列化的类型上使用DebuggerDisplayAttribute,以定义对象在调试过程中的显示方式(在代码中,foo实例)。

但是字符串是字符串,VisualStudio是正确的:必须对双引号进行转义。



 类似资料:
  • 问题内容: 这是一个“到底发生了什么”的问题。我实际上不需要解决方案。 我必须用双反斜杠替换字符串中的所有单反斜杠。这就是我最终要做的… …其中strRootDirectory是上面的java.lang.String。 现在,我了解了第一个参数的四个反斜杠:regex期望两个反斜杠以表示单个文字反斜杠,而Java希望它们加倍。没关系。 但是,第二个参数的八个反斜杠到底是怎么回事?替换字符串不是应该

  • 本文向大家介绍Python中的左斜杠、右斜杠(正斜杠和反斜杠),包括了Python中的左斜杠、右斜杠(正斜杠和反斜杠)的使用技巧和注意事项,需要的朋友参考一下 首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows (一)目录中的斜杠们 python读文件需要输入的目录参数,列出以下

  • Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用 <em> 标签),你可以在星号的前面加上反斜杠: \*literal asterisks\* Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号: \ 反斜线 ` 反引号 * 星号 _ 底线 {} 花括号 [] 方括号 () 括

  • 本文向大家介绍详解json串反转义(消除反斜杠),包括了详解json串反转义(消除反斜杠)的使用技巧和注意事项,需要的朋友参考一下 JSon串在被串行化后保存在文件中,读取字符串时,是不能直接拿来用JSON.parse()解析为JSON  对象的。因为它是一个字符串,不是一个合法的JSON对象格式。例如下面的JSON串保存在文件中,读出来不能直接解析: “{\"resourceId\":\"dfe

  • 问题内容: 我从Instagram提取JSON: 然后将变量解析为PHP数组以重组数据,然后重新编码和缓存文件: 当我打开缓存文件时,我所有的正斜杠“ /”都被转义了: 我从搜索中收集到自动执行此操作…是否可以禁用它? 问题答案: 有没有办法禁用它? 是的,您只需要使用该标志。 重要的 阅读之前:https : //stackoverflow.com/a/10210367/367456(知道你在做

  • 问题内容: 我正在尝试将输出输出为\ a \ b \ c。上面的错误可能是因为我无法转义\字符。 问题答案: 您无需转义反斜杠(仅使用内部单引号):