Jump to content

Very simple JSONReader code not working


Recommended Posts

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}

  

 

] }}
Link to comment
https://forums.phpfreaks.com/topic/288472-very-simple-jsonreader-code-not-working/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.