I have a following JSON File. I have tried accessing it; but, I am getting undefined error. Please suggest how to read it using PHP:
"feed": {
"entry": [
{
"id": "679244143963",
"title": "Nashware Black Travel Kit",
"description": "Color : Black Material : Others Type : Travel kits Closure : Magnit Button Combo : No Compartment : 4 Dimension (LxHxW) cm : 25X51X7 Disclaimer : Product colour may slightly vary due to photographic lighting sources or your monitor settings Gender : Women ",
"link": "http://www.sl.com/product/travel-kit/679244143963",
"image_link": "http://n1.sdlcdn.com/imgs/b/e/t/MU_COS_BAG_M_1_3x-0b20f.jpg",
"sub_category_id": "435",
"sub_category_name": "Travel Accessories",
"mrp": "700",
"availability": "in stock",
"effective_price": "310"
},
{
"id": "679244143963",
"title": "Nashware Black Travel Kit",
"description": "Color : Black Material : Others Type : Travel kits Closure : Magnit Button Combo : No Compartment : 4 Dimension (LxHxW) cm : 25X51X7 Disclaimer : Product colour may slightly vary due to photographic lighting sources or your monitor settings Gender : Women ",
"link": "http://www.sl.com/product/travel-kit/679244143963",
"image_link": "http://n1.sdlcdn.com/imgs/b/e/t/MU_COS_BAG_M_1_3x-0b20f.jpg",
"sub_category_id": "435",
"sub_category_name": "Travel Accessories",
"mrp": "700",
"availability": "in stock",
"effective_price": "310"
}
]
}
After Entry same as JSON notation Id, title, desc and etc are displayed in array. Any suggestions.
It seems your JSON is structured as follows :
{"feed" : {
"entry" : [array of JSON objects]
}
}
So after doing some research, it seems the best way to do it would be to use RecursiveArrayIterator. I found the answer on another post, here.
<?php
$json = <<< JSON
{
"feed": {
"entry": [{
"id": "679244143963",
"title": "Nashware Black Travel Kit",
"description": "Color : Black Material : Others Type : Travel kits Closure : Magnit Button Combo : No Compartment : 4 Dimension (LxHxW) cm : 25X51X7 Disclaimer : Product colour may slightly vary due to photographic lighting sources or your monitor settings Gender : Women ",
"link": "http://www.sl.com/product/travel-kit/679244143963",
"image_link": "http://n1.sdlcdn.com/imgs/b/e/t/MU_COS_BAG_M_1_3x-0b20f.jpg",
"sub_category_id": "435",
"sub_category_name": "Travel Accessories",
"mrp": "700",
"availability": "in stock",
"effective_price": "310"
},
{
"id": "679244143963",
"title": "Nashware Black Travel Kit",
"description": "Color : Black Material : Others Type : Travel kits Closure : Magnit Button Combo : No Compartment : 4 Dimension (LxHxW) cm : 25X51X7 Disclaimer : Product colour may slightly vary due to photographic lighting sources or your monitor settings Gender : Women ",
"link": "http://www.sl.com/product/travel-kit/679244143963",
"image_link": "http://n1.sdlcdn.com/imgs/b/e/t/MU_COS_BAG_M_1_3x-0b20f.jpg",
"sub_category_id": "435",
"sub_category_name": "Travel Accessories",
"mrp": "700",
"availability": "in stock",
"effective_price": "310"
}]
}
}
JSON;
$jsonIterator = new RecursiveIteratorIterator(
new RecursiveArrayIterator(json_decode($json, TRUE)),
RecursiveIteratorIterator::SELF_FIRST);
foreach ($jsonIterator as $key => $val) {
if(is_array($val)) {
echo "$key:
";
} else {
echo "$key => $val
";
}
}
You have missed start and end brackets. Your json should look like:
{
"feed": {
"entry": [{
"id": "679244143963",
"title": "Nashware Black Travel Kit",
"description": "Color : Black Material : Others Type : Travel kits Closure : Magnit Button Combo : No Compartment : 4 Dimension (LxHxW) cm : 25X51X7 Disclaimer : Product colour may slightly vary due to photographic lighting sources or your monitor settings Gender : Women ",
"link": "http://www.sl.com/product/travel-kit/679244143963",
"image_link": "http://n1.sdlcdn.com/imgs/b/e/t/MU_COS_BAG_M_1_3x-0b20f.jpg",
"sub_category_id": "435",
"sub_category_name": "Travel Accessories",
"mrp": "700",
"availability": "in stock",
"effective_price": "310"
},
{
"id": "679244143963",
"title": "Nashware Black Travel Kit",
"description": "Color : Black Material : Others Type : Travel kits Closure : Magnit Button Combo : No Compartment : 4 Dimension (LxHxW) cm : 25X51X7 Disclaimer : Product colour may slightly vary due to photographic lighting sources or your monitor settings Gender : Women ",
"link": "http://www.sl.com/product/travel-kit/679244143963",
"image_link": "http://n1.sdlcdn.com/imgs/b/e/t/MU_COS_BAG_M_1_3x-0b20f.jpg",
"sub_category_id": "435",
"sub_category_name": "Travel Accessories",
"mrp": "700",
"availability": "in stock",
"effective_price": "310"
}]
}
}
Or you have to use below code:
$obj = json_decode("{" . $json . "}");