c# – 为什么JSON.NET在一行上序列化所有内容?

前端之家收集整理的这篇文章主要介绍了c# – 为什么JSON.NET在一行上序列化所有内容?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我只是希望 JSON.net序列化程序写出 JSON对象(到文件),每行一个对象,但它只是将所有内容附加在同一顶行.所有的JSON.net示例似乎暗示我想要的是默认行为,但我没有看到它以这种方式工作.这是代码
static void EtwToJsonHelper(TraceEvent data,JsonSerializer s,JsonTextWriter jw)
{
    var names = data.PayloadNames;

    jw.WriteStartObject();
    jw.WritePropertyName("TimeStamp");
    jw.WriteValue(data.TimeStamp);
    ...
    jw.WriteEndObject();
}

输出如下:
{object} {obj2} … {objN}全部在一行上.

但我想要:

{} OBJ1

{} OBJ2

我该怎么做呢?

解决方法

为清晰起见,提供的示例是缩进的,但默认行为是在没有任何不必要的空格的情况下编写生成的JSON字符串.您可以像这样覆盖此行为:
jw.Formatting = Formatting.Indented;
jw.WriteStartObject();
...

进一步阅读

> Formatting enum

要确保每个条目都附加到一个新行,您可以在编写JSON对象后编写一个新的行字符,如下所示:

...
jw.WriteEndObject();
jw.WriteRaw("\n");

或者通过在底层TextWriter上调用WriteLine,尽管这需要在此方法之外完成.

原文链接:https://www.f2er.com/csharp/97277.html

猜你在找的C#相关文章