php - 如何在 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:[
解决方案
它返回一个数组列表,因此您可能想要使用类似的东西:
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);
}
推荐阅读
- soap - 如何将类型添加到 Apex 中的密码文本到 SOQL 网络服务调用?
- c++ - 类模板参数推导失败导致替换失败
- python - 使用 ManyToManyField 的序列化模型缺少数据
- jquery - 如何重新加载侧边栏中显示的 PartialView?
- winapi - Windows API 的完整在线文档在哪里?
- cocos2d-x - 空的 cocos2D-x 项目太大
- javascript - 在 Ionic 框架中使用电子邮件发送附件
- typescript - 从移动应用程序中提取设备信息
- arrays - 如何为复杂的 JSON 数组应用 if-else
- ruby-on-rails - Rails、Chartkick 和 Blazer