json - 解析大型单行 JSON 而无需将整个文件加载到内存中

标签 json go amazon-s3

我正在尝试从 S3 CloudTrail 日志中解析 JSON,一些文件在解压缩后是一行 40MB 的 JSON。我试图避免将所有这些加载到内存中 - 有没有一种方法可以更正确地逐一读取条目,而不是将整个 blob 加载到内存中?

我是新手,所以我现在唯一的代码是将整行解码到内存中

最佳答案

您可以使用 json.Decoder() 并将文件 token 作为流逐个处理。当您到达要解码为结构的位置时,可以使用 Decoder.Decode()。

json.Unmarshal() 本质上是在流的开头调用 Decoder.Decode()。

关于json - 解析大型单行 JSON 而无需将整个文件加载到内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57697389/

相关文章:

python-2.7 - 使用boto3将文件上传到S3存储桶中的特定文件夹

ruby-on-rails - 如何将 CarrierWave Direct 与嵌入式 Mongodb 文档和遗留 Carrierwave 文件一起使用

php - 使用PHP从JSON获取数据

javascript - 如何告诉 mobileinit 暂停执行直到加载 json

java - Gson->Json 反序列化自定义对象List

postgresql - "Message": "relation\"users\"does not exist", 戈朗

c++ - 如何发送 http 请求并检索 json 响应 C++ Boost

json - 使用 jsoup 抓取站点并在 golang 中生成 json

http - 带有错误处理的 Golang 优雅 HTTP 服务器关闭

c# - 在smtp客户端c#中将亚马逊上传的文件作为附件发送