使用 MemoryStream 序列化为 JSON,同时添加换行符 C#
Serializing into JSON using MemoryStream,while adding newlines C#
我必须将一些 C# class 数据序列化为 JSON。为此,我使用了 MemoryStream 和 DataContractJsonSerializer。
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(stream1, p);
using (FileStream file = new FileStream("Write.json", FileMode.Create, FileAccess.ReadWrite))
{
stream1.Position = 0;
stream1.Read(stream1.ToArray(), 0, (int)stream1.Length);
file.Write(stream1.ToArray(), 0, stream1.ToArray().Length);
stream1.Close();
file.Close();
}
运行 这样的应用程序会产生以下输出:
{"age":42,"arr":[{},{},{}],"name":"John","value":null,"w":{}}
但是,对于我的任务,我必须生成一个 JSON 文件,其中每个条目都在一个新行中输入。示例:
"SomeData":[
{
"SomeData" : "Value",
"SomeData" : 0,
"SomeData": [
{
"SomeData" : "Value",
"SomeData" : 0
]
}
]
}, etc. etc.
关于如何执行此操作的任何想法?提前致谢!
好的,如果您想这样做,只需添加此问题中回答的代码即可。
question here
我必须将一些 C# class 数据序列化为 JSON。为此,我使用了 MemoryStream 和 DataContractJsonSerializer。
MemoryStream stream1 = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
ser.WriteObject(stream1, p);
using (FileStream file = new FileStream("Write.json", FileMode.Create, FileAccess.ReadWrite))
{
stream1.Position = 0;
stream1.Read(stream1.ToArray(), 0, (int)stream1.Length);
file.Write(stream1.ToArray(), 0, stream1.ToArray().Length);
stream1.Close();
file.Close();
}
运行 这样的应用程序会产生以下输出:
{"age":42,"arr":[{},{},{}],"name":"John","value":null,"w":{}}
但是,对于我的任务,我必须生成一个 JSON 文件,其中每个条目都在一个新行中输入。示例:
"SomeData":[
{
"SomeData" : "Value",
"SomeData" : 0,
"SomeData": [
{
"SomeData" : "Value",
"SomeData" : 0
]
}
]
}, etc. etc.
关于如何执行此操作的任何想法?提前致谢!
好的,如果您想这样做,只需添加此问题中回答的代码即可。
question here