Json.NET可以创建可读的json文件吗?

kdm*_*ray 2 c# mono json json.net

我正在Mono上用C#构建一个应用程序,我正在尝试使用Json.NET将对象序列化为JSON.我遇到的问题是生成的JSON没有空格,并且不是特别易读.

[{"Title":"Third Post","Link":"http://example.com/third/link.html","Excerpt":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nibh velit, imperdiet id felis a, semper cursus tellus. Cras dapibus a libero at pharetra. Suspendisse nunc augue, elementum sit amet scelerisque vitae, luctus sed nulla.","Count":0},{"Title":"Second Post","Link":"http://example.com/second/link.html","Excerpt":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nibh velit, imperdiet id felis a, semper cursus tellus. Cras dapibus a libero at pharetra. Suspendisse nunc augue, elementum sit amet scelerisque vitae, luctus sed nulla.","Count":2},{"Title":"First Post","Link":"http://example.com/first/link.html","Excerpt":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nibh velit, imperdiet id felis a, semper cursus tellus. Cras dapibus a libero at pharetra. Suspendisse nunc augue, elementum sit amet scelerisque vitae, luctus sed nulla.","Count":6}]
Run Code Online (Sandbox Code Playgroud)

我希望生成更像这样的东西:

[
    {
        "Title":"Third Post",
        "Link":"http://example.com/third/link.html",
        "Excerpt":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nibh velit, imperdiet id felis a, semper cursus tellus. Cras dapibus a libero at pharetra. Suspendisse nunc augue, elementum sit amet scelerisque vitae, luctus sed nulla.",
        "Count":0
    },
    {
        "Title":"Second Post",
        "Link":"http://example.com/second/link.html",
        "Excerpt":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nibh velit, imperdiet id felis a, semper cursus tellus. Cras dapibus a libero at pharetra. Suspendisse nunc augue, elementum sit amet scelerisque vitae, luctus sed nulla.",
        "Count":2
    },
    {
        "Title":"First Post",
        "Link":"http://example.com/first/link.html",
        "Excerpt":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur nibh velit, imperdiet id felis a, semper cursus tellus. Cras dapibus a libero at pharetra. Suspendisse nunc augue, elementum sit amet scelerisque vitae, luctus sed nulla.",
        "Count":6
    }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法让这种空白自动添加到输出中?

Max*_*Max 5

你可以使用你喜欢Formatting.IndentedFormatting属性值JsonWriter:

writer.Formatting = Formatting.Indented;
Run Code Online (Sandbox Code Playgroud)

如果你只是使用JsonSerializer然后使用SerializeObject方法的重载; 其中一些采用Formatting您可以设置的参数Formatting.Indented.