给定代码:
dynamic foo = new ExpandoObject();
foo.Bar = "something";
string json = Newtonsoft.Json.JsonConvert.SerializeObject(foo);
输出如下:
"{\"Bar\":\"something\"}"
调试大型json文档时,很难读懂-使用Newtonsoft.Json的内置功能(不是正则表达式或可能会破坏事情的黑客程序)可以通过任何方式使输出字符串有效:
{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 standard,因此就算了!
如果您实际上并没有序列化ExpandoObject(也没有控制之外的任何其他密封类),则可以在json中序列化的类型上使用DebuggerDisplayAttribute来定义调试期间对象的显示方式(在代码中
foo
实例)。但是字符串是字符串,VisualStudio是正确的:必须对双引号进行转义。