Welcome to WebmasterWorld Guest from 54.227.231.144

Forum Moderators: bill & werty

Message Too Old, No Replies

Simple JSONReader code not working

Using JSONReader to parse large json file

   
2:12 am on May 14, 2014 (gmt 0)



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}


] }}
3:57 am on May 14, 2014 (gmt 0)

WebmasterWorld Administrator bill is a WebmasterWorld Top Contributor of All Time 10+ Year Member Top Contributors Of The Month



Follow up here: [webmasterworld.com...]