给定代码:

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是正确的:必须对双引号进行转义。

09-30 14:34
查看更多