我想将 JSON 流转换为对象流。使用换行符分隔的 JSON 很容易做到这一点。来自 Go 文档:https : //golang.org/pkg/encoding/json/#Decoder.Buffered
但是,我需要从这样的 JSON 数组生成一个流:
[{"Name": "Ed", "Text": "Knock knock."},
{"Name": "Sam", "Text": "Who's there?"},
{"Name": "Ed", "Text": "Go fmt."},
{"Name": "Sam", "Text": "Go fmt who?"},
{"Name": "Ed", "Text": "Go fmt yourself!"}]
什么是执行此操作的高性能方法?
我考虑过这种方法:
去掉外面的尖括号
当有匹配的顶级大括号时,解组大括号(包括)之间的字符串以一次获取一个顶级对象。
我不想这样做,因为两次扫描字符串的每个部分会影响性能。
我能做的最好的选择是复制 Golang encoding/json 包中解码器的源代码并修改它,以便它返回一个 Reader 一次吐出一个对象。但是对于这样一个简单的要求来说,这似乎太多了。
有没有更好的方法来解码 JSON 数组流?
相关分类