我正在编写一个cron脚本,它会调用一个API,接收JSON文件(一个大数组的对象)并将其存储在本地。完成后,另一个脚本需要解析已下载的JSON文件,并将每个对象插入到MySQL数据库中。
我目前使用file_get_contents()
和json_decode()
。这将尝试在处理之前将整个文件读入内存。这是可以接受的,但我的JSON文件通常会范围从250MB-1GB+。我知道我可以增加PHP内存限制,但在我看来这不是最好的答案。我知道可以运行fopen()
和fgets()
逐行读取文件,但我需要按每个JSON对象逐个读取文件。
是否有一种方法按对象读取文件,或者是否有另一种类似的方法?