[英]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.