我正在进行一个与yahoo集成的项目,他们要求我发送的JSON文件格式为:列表中的每个对象都在一行中,没有开始/结束"[]“,也没有逗号。
{"urn": "e12b6e8135d73...","att": {"id": "MyId","val": 2607}}
{"urn": "6c6355c27642e...","att": {"id": "MyId","val": 2607}}
{"urn": "d415821e454c7...","att": {"id": "MyId","val": 2607}}因为这些文件是数百万个对象,所以我使用一个TextWriter和JsonSerializer来构建这个文件。
using (TextWriter writer = File.CreateText(dataFileLocation))
{
var serializer = new JsonSerializer();
serializer.Serialize(writer, data);
}我知道在构建文件之后,我可以在每个对象之后做一个char替换和换行符,但是我觉得这将是比需要的更多的工作,并且对于将来可能发生的任何更改都不是很灵活。
我正在使用NewtonSoft进行JSON操作,但如果其他东西具有执行这种特定格式的格式化程序,则可以使用其他东西。我一直在寻找其他的选择,但什么也找不到。所以要么我是瞎子要么就得按惯例行事。
发布于 2022-07-12 15:49:02
看上去比我想的要容易一些,这件事正好让我.答案是:
using (TextWriter writer = File.CreateText(dataFileLocation))
{
var serializer = new JsonSerializer();
foreach (var item in data)
{
serializer.Serialize(writer, item);
writer.WriteLine();
}
}https://stackoverflow.com/questions/72944640
复制相似问题