给定代码:
dynamic foo = new ExpandoObject(); foo.Bar = "something"; string json = Newtonsoft.Json.JsonConvert.SerializeObject(foo);
输出如下:
"{\"Bar\":\"something\"}"
调试大型json文档时,很难读懂- 使用Newtonsoft.Json的内置功能(不是正则表达式或可能会破坏事情的hack),可以通过任何方式使输出字符串成为有效值:
{Bar: "something"}
查看json值时,在调试器中看到的是应该在C#文件中使用以获得相同值的字符串值。
json
确实可以替换
与
string json = "{\"Bar\":\"something\"}";
而不更改程序的行为。
因此,要获得不同的值,您应该更改JsonConvert的工作方式,但是JsonConvert符合JSON标准,因此就算了!
如果您实际上并没有序列化ExpandoObject(也没有控制之外的任何其他密封类),则可以在json中序列化的类型上使用DebuggerDisplayAttribute,以定义对象在调试过程中的显示方式(在代码中,foo实例)。
foo
但是字符串是字符串,VisualStudio是正确的:必须对双引号进行转义。