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

时间:2019-08-28 17:28:17

标签: json go amazon-s3

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用json.Decoder()并逐个令牌地将文件令牌作为流进行处理。来到要解组为结构的地方时,可以使用Decoder.Decode()。

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