如何使用php读取JSON文件

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
";
    }
}

Here you can run the code one codepad

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 . "}");