首页 > 解决方案 > 如何在 JSON API 的 PHP 中使用 Curl 返回一些变量

问题描述

我的工作代码有问题,我实际上使用了停车场信息的 JSON API:

当我使用 curl 获取 JSON 时,如下所示:

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, "https://demo.kepler-soft.net/api/v2.3/api-key/"key"/vehicles/?brand=Peugeot");
  curl_setopt($ch, CURLOPT_HTTPGET);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  //Decode and display the output
  $result =  curl_exec($ch);
  curl_close($ch);

  $data = json_decode($result,true);
  var_dump($data);

它返回给我:

array(7) { [0]=> array(58) { ["totalResult"]=> string(1) "7" ["nbPageList"]=> int(1) ["createdAt"]=> string(24) "2018-05-09T10:25:15+0200" ["updatedAt"]=> string(24) "2018-05-09T10:28:47+0200" ["reference"]=> string(6) "1aqyy0" ["reportNumber"]=> int(6) ["country"]=> string(2) "FR" ["state"]=> string(18) "vehicle.state.parc" ["brand"]=> array(2) { ["reference"]=> string(13) "571a35428256b" ["name"]=> string(7) "PEUGEOT" } ["model"]=> array(2) { ["reference"]=> string(13) "59d5e93c66fcd" ["name"]=> string(3) "308" } ["version"]=> array(2) { ["reference"]=> string(13) "5a16a5018cd0a" ["name"]=> string(37) "308 1.6 BlueHDi 120ch S&S EAT6 Allure" } ["typeVoVn"]=> array(2) { ["reference"]=> string(13) "56f50a800ff53" ["name"]=> string(2) "VO" } ["vehicleType"]=> array(2) { ["reference"]=> string(13) "587e9d16446ec" ["name"]=> string(2) "VP" } ........

我知道它是一个数组,而一辆车就像一个“对象”,所以我希望所有车辆只获得“品牌”、“型号”等,并将其放在我的网站上的卡片中。

我已经阅读过类似的问题:如何使用 cURL 获取 JSON 数据并解码数据?

但这对我不起作用:(

我尝试了很多事情,例如:

var_dump($data["brand"]["name"]); etc...

或者

$data=$result->vehicles->brand->name;

因此,如果有人可以回答我,那将对我有很大帮助!

我希望我的帖子很清楚,我的英语不是很好,这是我在 stackoverflow 上的第一篇帖子!

谢谢。转生

JSON API 响应示例:

  [  
   {  
      totalResult:"37",
      nbPageList:4,
      createdAt:"2018-05-09T10:25:15+0200",
      updatedAt:"2018-05-09T10:28:47+0200",
      reference:"1aqyy0",
      reportNumber:6,
      country:"FR",
      state:"vehicle.state.parc",
      brand:{  
         reference:"571a35428256b",
         name:"PEUGEOT"
      },
      model:{  
         reference:"59d5e93c66fcd",
         name:"308"
      },
      version:{  
         reference:"5a16a5018cd0a",
         name:"308 1.6 BlueHDi 120ch S&S EAT6 Allure"
      },
      typeVoVn:{  
         reference:"56f50a800ff53",
         name:"VO"
      },
      vehicleType:{  
         reference:"587e9d16446ec",
         name:"VP"
      },
      vin:"VF5JUHG5696YTVRFV",
      licenseNumber:"AZ-569-EE",
      energy:{  
         reference:"56f524a90c378",
         name:"Diesel"
      },
      firstHand:false,
      bodywork:{  
         reference:"56f52328c21ef",
         name:"Berline"
      },
      gearbox:{  
         reference:"56f50a7f3074f",
         name:"Boîte automatique"
      },
      color:{  
         reference:"56f50a7e6d344",
         name:"Blanc"
      },
      colorAccuracy:"vehicle.color_accuracy.glossy",
      pricePublicWithoutTax:"12000.00",
      pricePublic:"12000.00",
      priceSellerWithoutTax:"12000.00",
      priceSeller:"12000.00",
      dateOfDistribution:"2017-03-25T00:00:00+0100",
      year:"2017",
      distanceTraveled:120000,
      distanceTraveledWarranty:false,
      gallery:[  
         {  
            photo:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/109ce27d0e08b98a028e2a7dc47c30f9a66cc813.jpeg",
            large:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44888_admin_large.jpeg",
            big:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44888_admin_big.jpeg",
            thumb:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44888_admin_small.jpeg",
            position:0,
            reference:"d04b5bf398ef9a025251e1aaa8b4893b2bf71ba5",
            updatedAt:"2018-05-09T10:27:50+0200"
         },
         {  
            photo:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/1fccf17bffe828898ca3e6d7ddfd769643b890d8.jpeg",
            large:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44889_admin_large.jpeg",
            big:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44889_admin_big.jpeg",
            thumb:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44889_admin_small.jpeg",
            position:1,
            reference:"85fc496dbd5b2aa5b10e34a128d065c3c838a02e",
            updatedAt:"2018-05-09T10:27:53+0200"
         },
         {  
            photo:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/cfe766347a19c0e215e58114b1cb9cf3725f9710.jpeg",
            large:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44890_admin_large.jpeg",
            big:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44890_admin_big.jpeg",
            thumb:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44890_admin_small.jpeg",
            position:2,
            reference:"455d14dda58e59fe73782bdc21c18c43c173c73b",
            updatedAt:"2018-05-09T10:27:56+0200"
         },
         {  
            photo:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/8c42508ba993f603f3c4d3875d41390a3327b31c.jpeg",
            large:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44891_admin_large.jpeg",
            big:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44891_admin_big.jpeg",
            thumb:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44891_admin_small.jpeg",
            position:3,
            reference:"1de79d822e36061df0fcf7b6ed010b02202792e1",
            updatedAt:"2018-05-09T10:27:59+0200"
         },
         {  
            photo:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/0b42463c944706e24c39c1b939922379075af47e.jpeg",
            large:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44892_admin_large.jpeg",
            big:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44892_admin_big.jpeg",
            thumb:"https://demo.kepler-soft.net/uploads/demo/media/0001/45/thumb_44892_admin_small.jpeg",
            position:4,
            reference:"7d26039416029e2446c0c435f42facd62264c912",
            updatedAt:"2018-05-09T10:28:02+0200"
         }
      ],
      vo:507,
      gender:{  
         reference:"56f50a7ed5c2c",
         name:"VP"
      },
      taxHorsepower:6,
      horsepower:120,
      carEngine:1560,
      doors:5,
      seats:5,
      urbanConsumption:4.1,
      extraUrbanConsumption:3.4,
      mixteConsumption:3.6,
      extraUrbanKmConsumption:95,
      isWorkshop:false,
      isRental:false,
      isRecoverableVat:false,
      warrantyType:"vehicle.warranty.type.with",
      warrantyOrganization:"VOTH",
      warrantyLabel:{  
         reference:"570b8682b5b53",
         name:"Moteur, boite, pont"
      },
      warrantyKilometric:5000,
      warrantyDuration:3,
      supplier:{  
         phoneNumber:"02 51 98 09 09",
         address:{  
            address:"1 Bd Jean moulin",
            postalCode:"44100",
            city:"NANTES",
            country:"FR"
         },
         legalFormContact:"SARL",
         corporateNameContact:"KEPLER AUTOS",
         commonName:"KEPLER AUTOS",
         siret:"50822227000011",
         tvaIntracom:"FR 15 8025733"
      },
      expertise:{  
         elementList:[  

         ]
      },
      origin:"Négociant",
      valueOption:"12308.00",
      valueNew:"30200.00",
      valueNewOption:"42508.00",
      equipmentStandard:[  

标签: phparraysjsonapicurl

解决方案


它返回一个数组列表,因此您可能想要使用类似的东西:

foreach ($data as $vehicle) {
    var_dump($vehicle);
}

或者:

var_dump($data[0]['brand']['name']);

这是一个演示行为的小示例代码

$array = array('car1' => array('totalResult' => 7, 'nbPageList' => 1, 'brand' => array(' reference'=> "571a35428256b", 'name' => "PEUGEOT" )),
    'car2' => array('totalResult' => 1, 'nbPageList' => 1, 'brand' => array(' reference'=> "571a35428376b", 'name' => "RENAULT" )));

var_dump($array);

foreach ($array as $vehicleName => $vehicleDetails) {
    var_dump($vehicleDetails);
}

推荐阅读