我通常会得到很大的JSON,其中包含很多列表以及列表中的许多元素。我的目标是获得左侧结构而不是右侧结构。 正确的结构是我从Newtonsoft得到的。 是否有另一个库可以让我像这样打印它?
最佳情况是:
答案 0 :(得分:1)
如果您将JsonTextWriter
类子类化并重写WriteIndent
方法,则可以使用Json.Net(也称为Newtonsoft Json)获得所需的缩进:
public class CustomJsonTextWriter : JsonTextWriter
{
public CustomJsonTextWriter(TextWriter writer) : base(writer)
{
}
protected override void WriteIndent()
{
if (WriteState != WriteState.Array)
base.WriteIndent();
else
WriteIndentSpace();
}
}
然后创建一个小的辅助方法,以使其易于使用自定义编写器:
public static class JsonHelper
{
public static string SerializeWithCustomIndenting(object obj)
{
using (StringWriter sw = new StringWriter())
using (JsonWriter jw = new CustomJsonTextWriter(sw))
{
jw.Formatting = Formatting.Indented;
JsonSerializer ser = new JsonSerializer();
ser.Serialize(jw, obj);
return sw.ToString();
}
}
}
这是一个有效的演示:https://dotnetfiddle.net/RusBGI