У меня есть большой файл JSON, который я пытаюсь вставить в базу данных. При использовании json_decode
, чтобы преобразовать его в массив, чтобы вставить его в базу данных, я получаю сообщение об ошибке:Работа с большим .JSON файлом (PHP)
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 188340087 bytes) in site.php on line 48
Есть ли более эффективный способ, чтобы перевести эти данные без строки читать строки и буферизации. Если нет, как я должен читать каждую строку и расшифровывать ее? Буду признателен за любую помощь.
{"items":[ {
"itemId" : 17730521,
"parentItemId" : 17730521,
"name" : "1000 lb Flat-Free Super Steel P-Handle Hand Truck",
"msrp" : 110.0,
"salePrice" : 87.94,
"upc" : "053417031815",
"categoryPath" : "Home Improvement/Tools/Lifting Equipment",
"shortDescription" : "The Flat-Free 1000-pound Heavy-Duty Hand Truck is one tough truck with its heavy-duty oversized frame, extra large base plate and curved frame back that easily transports boxes or cylinders.",
"longDescription" : "<br><b>1000 lb Flat-Free Super Steel P-Handle Hand Truck:</b><ul><li>Heavy-duty flat-free 10" solid rubber wheels</li><li>1000 lb capacity</li><li>Extra large 20" x 8" base plate for bulky and oversized loads</li><li>50" height for larger loads</li><li>P-loop handle for easy 1- or 2-hand control</li><li>Large fenders to protect load from damage</li><li>Dimensions: 50"L x 21"W x 19"H</li><li>1-year warranty</li></ul>",
"brandName" : "Generic",
"thumbnailImage" : "this is a link",
"mediumImage" : "this is a link",
"largeImage" : "this is a link",
"productTrackingUrl" : "",
"ninetySevenCentShipping" : false,
"standardShipRate" : 0.0,
"twoThreeDayShippingRate" : 79.97,
"overnightShippingRate" : 73.97,
"marketplace" : false,
"shipToStore" : true,
"freeShipToStore" : true,
"modelNumber" : "H5986",
"productUrl" : "",
"categoryNode" : "1072864_1031899_1043985",
"bundle" : false,
"clearance" : true,
"preOrder" : false,
"stock" : "Available",
"availableOnline" : true,
"bestMarketplacePrice" : {
"price" : 120.0,
"sellerInfo" : "PlumStruck",
"standardShipRate" : 5.99,
"availableOnline" : true,
"clearance" : false
}
},
...
]}
получил больше памяти, вы может выделить? –
Я попытался выделить память, к сожалению, при загрузке файла он использует слишком много ресурсов моего сервера. Я стараюсь сделать его легким и эффективным, чтобы не мешать памяти. – user3184243
Какая структура этого массива JSON? В чем проблема с чтением строк по очереди. Если это всего лишь массив и лучше, но в основном с разделителями строк, это очень просто. – Brad