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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵