2017-10-08 69 views
-1

我正在使用JSON pull parser for PHP 7從龐大的25GB json文件中提取數據。這裏是my dummy json file
數據提取正常工作,直到JSON文件的Line 153731,然後我收到此錯誤:解決致命錯誤未捕獲的pcrov JsonReader Parser ParseException(php json)

Fatal error: Uncaught pcrov\JsonReader\Parser\ParseException: Line 153731: Unexpected 'u'. in 
C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Lexer.php:134 
Stack trace: 
#0 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Lexer.php(97): pcrov\JsonReader\Parser\Lexer->consumeLiteral('ull') 
#1 [internal function]: pcrov\JsonReader\Parser\Lexer->getIterator() 
#2 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(180): IteratorIterator->next() 
#3 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(152): pcrov\JsonReader\Parser\Parser->parsePair() 
#4 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(205): pcrov\JsonReader\Parser\Parser->parseObject() 
#5 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(123): pcrov\JsonReader\Parser\Parser->parseValue() 
#6 C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Parser.php(202): pcrov\JsonReader\Parser\Parser->parseArray() 
#7 C:\xampp\htdocs\json\pcrov\vendor\ in C:\xampp\htdocs\json\pcrov\vendor\pcrov\jsonreader\src\Parser\Lexer.php on line 134 

我用Google搜索和精梳計算器知道如何解決這個問題,但一直未果。

這裏是我的代碼:

<?php 
require_once 'C:/xampp/htdocs/json/pcrov/vendor/autoload.php'; 
use \pcrov\JsonReader\JsonReader; 
ini_set("max_execution_time", 0); 
$reader = new JsonReader(); 
$reader->open("myjsonfile.json"); 
$fo = fopen("mycsv.csv", "w"); 
fputs($fo, "name, ultimateHoldingCompany".PHP_EOL);              
while($reader->read()) { 
    $name = null; 
    $uhcName = null; 
    if ($reader->read("entityName")){ 
    $name = null; 
    $entityName = $reader->value(); 
    } 

    if ($reader->read("ultimateHoldingCompany")){  
    $uhcName = null; 
    $ultimateHoldingCompany = $reader->value(); 
    if (empty($ultimateHoldingCompany)){ 
     $uhcName = null; 
    } 
    else { 
     $uhcName = $ultimateHoldingCompany[0]['name']; 
    } 

    //print_r($uhcName); die; 

    } 

    fputs($fo, $entityName.",".$uhcName.PHP_EOL); 
    } 
$reader->close(); 
?> 

感謝您的幫助。

+0

你的虛擬文件似乎是一個JPG圖像鏈接〜'Capture.JPG' – Phil

+0

噢對不起。這是一個疏忽。我已糾正它。 – William

回答

0

我通過將json文件拆分成更小的塊來解決了這個問題。

相關問題