我正在从提供程序下载不同大小的json数据。大小可以从几百字节到几十MB不等。缓冲区或字符串或数组用于添加与json的区块
遇到了一个字符串问题(即stringVar + = chunk)。我不确定,但我怀疑我的崩溃必须使用相当大的字符串(15 MB)。
最后我需要json数据。我的临时解决方案是使用高达1MB的字符串,然后将其“冲洗”到缓冲区。我不想在开始时使用缓冲区,因为当下载量很小时,它经常会增长(即复制到更大的缓冲区)。
哪个解决方案最适合连接下载的块,然后解析为json?
1.
var dataAsAString = '';
..
dataAsAString += chunk;
..
JSON.parse(dataAsAString);
2.
var dataAsAnArray = [];
..
dataAsAnArray.push(chunk);
..
concatenate
JSON.parse..
3.
var buffer = new Buffer(initialSize)
..
buffer.write(chunk)
..
copy buffer to larger buffer when needed
..
JSON.parse(buffer.toString());
迈克尔
有趣。对不起,我对http.get很陌生。但我想知道,JSON.parse如何应对小块,一个接一个不会描述有效的json对象? – Michael
试过了。正如我怀疑这不是一个前进的方向。当抛出不代表有效json的小字符串时,JSON.parse会变得困惑。 – Michael
这就是为什么我说,元数据也需要与每个块一起使其有效的JSON。 – RRM