Jump to content

Recommended Posts

Posted
I am trying to use JSONReader (along with PHP & XPATH) to parse a very large JSON file, then display search results. A stream parser (such as JSONREader) is recommended over JSON_decode when parsing large files. This simple code below is not displaying any results (in the echo statements). Any advice is greatly appreciated.

 

$reader = new JSONReader(); 

$reader->open('products.json');

$dom = new DOMDocument;

$xpath = new DOMXpath($dom);

 

while ($reader->read() && $reader->name !== 'product') {

continue;

}

 

while ($reader->name === 'product') {

$node = $dom->importNode($reader->expand(), TRUE);

 

$name = $xpath->evaluate('string(name)', $node);

$price = $xpath->evaluate('string(price)', $node);

echo "Name: " . $name . ". ";

echo "Price: " . $price . ". ";

 

$reader->next('product');

}

 

 

Here is a snippet of the JSON file:


   "products": { 

      "product" : [

   { "name" : "Dell 409", "price" : 499.99},

   { "name" : "HP Lap top", "price" : 599.99},

   { "name" : "Compaq 11", "price" : 299.99}

  

 

] }}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...