由于内存限制,串行json_decode

Art*_*pov 5 php json

我有一个大的json文件(7.3MB),我尝试json_decode,它由于内存限制而失败(致命错误:允许的内存大小为134217728字节耗尽).有没有办法串行解码json文件,一次只有一个对象/节点?

Mik*_*ant 0

我想理论上你可以编写一些逻辑来解析字符串开头和结尾的字符,在构建对象/数组表示的同时迭代地减少内存中的字符串大小,但这将是一个严重的痛苦。

为什么不直接增加内存限制,或者如果这是一些需要频繁解码的 JSON(即对 Web 应用程序的每个请求),您应该考虑将其分解为更多使用组件。

  • 这也是一个理论问题,我知道我可以增加内存,但是如果 json 大小是 3GB 怎么办?我问是否有一个库可以计算所有 {} 符号并允许我从第 1 级对象 999999 开始(无论它在文件中的位置以及之前有多少层次结构)并且一次从该对象和/或子对象开始解码 (2认同)