如何使用已知的C#框架生成JSON Lines文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用已知的C#框架生成JSON Lines文件?相关的知识,希望对你有一定的参考价值。

我通常使用Newtonsoft的Json.NET来生成JSON文件。目前,我正在考虑将JSON格式的数据文件导入Google BigQuery。但是,BigQuery需要一个带有换行符的JSON文件作为分隔符(也可能称为JSON行),这与Json.NET通常的树样式输出略有不同。我一直在互联网上搜索如何做到这一点,但一直没有找到任何有用的东西。这可能与Newtonsoft或任何其他流行的JSON序列化器有关吗?

答案

不知道我怎么找不到dbc在评论中提供的链接:

使用Json.NET进行序列化和Line分隔的json序列化和反序列化以进行反序列化,查看Serialize as NDJSON。 - dbc 3小时前

我做了天真的版本,我建立了一个StringBuilder对象,但它自然不适合大量的数据。

但是,我同意Panagiotis Kanavos对以下评论:

这种攫取正在污染搜索结果,这使得找到答案比1年前更难

NDJSON,JSON Lines,换行符分隔JSON ......不太确定要使用哪个名称。 :)

另一答案

如www.json.org上的JSON规范所示,字符串中的换行符在JSON中编码为 n。

Railroad Diagram for JSON String

JSON.Net不会在输出中任意引入换行符,而是原始字符串已经有换行符,因此必须对它们进行编码。也可以试试

JsonConvert.SerializeObject(retPair.publicKey.Replace( “ n”, “”))

以上是关于如何使用已知的C#框架生成JSON Lines文件?的主要内容,如果未能解决你的问题,请参考以下文章

JSON Lines

JSON Lines

如何使用 iPhone 的 JSON 框架以编程方式生成 JSON

如何打开.json.gz格式文件并创建数据帧n R?

如何在scrapy框架下用python爬取json文件

如何查看class字节码文件