簡體   English   中英

序列化為JSON以每行獲取一個對象

[英]Serialize to JSON to get one object per line

是否可以以每行一個JSON對象的方式序列化對象集合? 像這樣:

{tag1: value1, tag2: value2}, 
{tag1: value3, tag2: value6}, 
{tag1: value4, tag2: value7}, 
{tag1: value5, tag2: value8}

據我所知,我可以序列化為具有“漂亮”和縮進的JSON或單行JSON,這不是我所需要的。

聽起來您想要換行符分隔的JSON 它與問題中的內容相同,但沒有逗號結尾。

您可以使用Json.Net創建一個簡單的輔助方法來創建這種格式,如下所示:

public static string Serialize(IEnumerable items)
{
    StringBuilder sb = new StringBuilder();
    foreach (var item in items)
    {
        sb.AppendLine(JsonConvert.SerializeObject(item));
    }
    return sb.ToString();
}

更好的是,只需將項目直接流式傳輸到您的文件中:

public static void SerializeToFile(IEnumerable items, string fileName, bool append = true)
{
    using (StreamWriter sw = new StreamWriter(fileName, append))
    using (JsonWriter writer = new JsonTextWriter(sw))
    {
        var ser = new JsonSerializer();
        foreach (var item in items)
        {
            ser.Serialize(writer, item);
            writer.WriteWhitespace(Environment.NewLine);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM