dongweicha6077 2017-04-06 08:27
浏览 58
已采纳

如何使用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.

  • 写回答

2条回答 默认 最新

  • doucang2831 2017-04-06 08:43
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Pythontxt文本可视化
  • ¥15 如何基于Ryu环境下使用scapy包进行数据包构造
  • ¥15 springboot国际化
  • ¥15 搭建QEMU环境运行OP-TEE出现错误
  • ¥15 Minifilter文件保护
  • ¥15 有限元软件终止时间超过设定值
  • ¥15 onvif框架引用一直报错
  • ¥50 C#和C++混合编程,使用CLR托管,报错System.Runtime.InteropServices.SEHException
  • ¥30 .NET使用sqlite发布后报错
  • ¥15 Unity在WebGL平台导出Word报错问题