如何使用php显示嵌套JSON数据?



我写了一整天的代码,只是为了显示我从Api提供程序获得的JSON中的嵌套数据,但没有什么会改变。总是出错!我该怎么办?这是我的代码,希望你能帮助我解决这个问题。

想象我的json文件的名字是05-03-21.json.这是JSON Data

{
"result":"OK",
"data":{
"body":{
"header":"Manila, National Capital Region, Philippines",
"query":{
"destination":{
"id":"1004070",
"value":"Manila, National Capital Region, Philippines",
"resolvedLocation":"CITY:1004070:UNKNOWN:UNKNOWN"
}
},
"searchResults":{
"totalCount":1286,
"results":[
{
"id":438619,
"name":"OYO 653 Rosas Garden Hotel",
"starRating":3,
"urls":[

],
"address":{
"streetAddress":"1140 MH Del Pilar St., Ermita",
"extendedAddress":"",
"locality":"Manila",
"postalCode":"1000",
"region":"Manila",
"countryName":"Philippines",
"countryCode":"ph",
"obfuscate":false
},
"welcomeRewards":{
"collect":true
},
"guestReviews":{
"unformattedRating":7,
"rating":"7.0",
"total":29,
"scale":10,
"badge":"good",
"badgeText":"Good"
},
"landmarks":[
{
"label":"City centre",
"distance":"2.0 km"
},
{
"label":"Manila Bay",
"distance":"7.6 km"
}
],
"geoBullets":[

],
"ratePlan":{
"price":{
"current":"P1,287",
"exactCurrent":1286.71,
"old":"P2,383",
"summary":"excluding taxes & fees"
},
"features":{
"freeCancellation":false,
"paymentPreference":false,
"noCCRequired":false
},
"type":"EC"
},
"neighbourhood":"Ermita",
"deals":{
"specialDeal":{
"dealText":"Save 46%"
},
"priceReasoning":"DRR-446"
},
"messaging":[

],
"badging":[

],
"pimmsAttributes":"DoubleStamps|D13|TESCO",
"coordinate":{
"lat":14.578154,
"lon":120.979947
},
"providerType":"LOCAL",
"supplierHotelId":6457589,
"isAlternative":false,
"optimizedThumbUrls":{
"srpDesktop":"https://thumbnails.trvl-media.com/uQm5oEf1djKsihiqX24-TfWhriQ=/250x140/smart/filters:quality(60)/images.trvl-media.com/hotels/7000000/6460000/6457600/6457589/b189dd23_z.jpg"
}
},
{
"id":756613600,
"name":"Astrotel Anonas",
"starRating":3,
"urls":[

],
"address":{
"streetAddress":"960 Aurora Boulevard",
"extendedAddress":"near LRT Anonas Station",
"locality":"Quezon City",
"postalCode":"",
"region":"",
"countryName":"Philippines",
"countryCode":"ph",
"obfuscate":false
},
"welcomeRewards":{
"collect":true
},
"guestReviews":{
"unformattedRating":4.8,
"rating":"4.8",
"total":40,
"scale":10
},
"landmarks":[
{
"label":"City centre",
"distance":"10 km"
},
{
"label":"Manila Bay",
"distance":"17 km"
}
],
"geoBullets":[

],
"ratePlan":{
"price":{
"current":"P1,295",
"exactCurrent":1294.64,
"summary":"excluding taxes & fees"
},
"features":{
"freeCancellation":false,
"paymentPreference":false,
"noCCRequired":false
},
"type":"EC"
},
"neighbourhood":"Quezon City",
"deals":[

],
"messaging":[

],
"badging":[

],
"pimmsAttributes":"DoubleStamps|D13|TESCO",
"coordinate":{
"lat":14.627763,
"lon":121.06376
},
"providerType":"LOCAL",
"supplierHotelId":23612925,
"isAlternative":false,
"optimizedThumbUrls":{
"srpDesktop":"https://thumbnails.trvl-media.com/0GhZSM5K0XRDs9aaIYn2FuUBUqk=/250x140/smart/filters:quality(60)/images.trvl-media.com/hotels/24000000/23620000/23613000/23612925/c83bf0b0_z.jpg"
}
}
]
},
"common":{
"pointOfSale":{
"numberSeparators":",.",
"brandName":"Hotels.com"
},
"tracking":{
"omniture":{
"s.prop33":"D=v33",
"s.prop32":"D=v43",
"s.prop74":"search result with dates | ms shown | N",
"s.products":"MULTISOURCE;6457589,LOCAL;23612925,LOCAL;23612485",
"s.eVar16":"Mob :: aApp",
"s.eVar40":"D=v0",
"s.eVar41":"PHP",
"s.eVar63":"60acf7e5-d622-4a1a-8110-a1fac036b405",
"s.eVar42":"30|1|20210404|20210405",
"s.eVar4":"|SI:anonymous|VS:returnVisitor|HCR:notApplicable|FC:notApplicable|NS:unknown|TI:notApplicable|SM:notApplicable|IR:anonymous|",
"s.eVar43":"en_PH|HCOM_PH|ph.hotels.com",
"s.eVar3":"2|0",
"s.eVar22":"5|PHP|24:438619:2382.7900:1286.7100:1|24:756613600:1294.6400:1294.6400:0|24:756599520:1294.6400:1294.6400:0|24:2052351936:1442.6200:1298.3600:0|24:454367:2407.3200:1299.9500:0",
"s.eVar2":"Manila, National Capital Region, Philippines",
"s.eVar23":"5|PHP|24:1279267456:1446.4300:1301.7900:0|24:632077728:2176.8300:1306.1000:1|24:494528:1455.3600:1309.8200:0|24:633744:1311.4800:1311.4800:0|24:1841636192:1311.4800:1311.4800:0",
"s.eVar24":"MCTC=20;TU=NA;PDID=NULL;MVT=",
"s.eVar7":"30",
"s.server":"ph.hotels.com",
"s.eVar6":"1004070",
"s.prop29":"D=v42",
"s.eVar5":"1",
"s.prop27":"1f6f9be9-a413-4f39-874c-86385cfe9627",
"s.eVar9":"Price - low to high",
"s.prop21":"0",
"s.prop20":"2",
"s.eVar69":"Mob :: aApp",
"s.currencyCode":"PHP",
"s.eVar26":"US:NY:NEWYORK:501",
"s.eVar29":"Mob :: aApp",
"s.prop9":"1286",
"s.eVar95":"Unknown",
"s.prop7":"1252",
"s.eVar31":"D=v0",
"s.eVar32":"D=v0",
"s.eVar33":"search result with dates",
"s.eVar34":"H1871:007.002,M376:152.000,M904:000.000,M3736:000.000,M4200:000.000,M4440.2,M4869:001.000,M4952:036.001,M4961:001.000,M5184:001.000,M5342:000.000,M5663:000.000,M6388:000.000,M6775:000.000,M6779:000.000,M7015.1,M7192:000.000,M7215:000.000,M7296:000.000,M7305:000.000,M7353:000.000,M7362.0,M7384:000.000,M7552:023.001,M7561:000.000,M7763:000.000,M7765.2,M7870:000.000,M7895:000.000,M8336:000.000,M8347:019.002,M8483:000.000,M8485:007.001,M8692:000.000,M8693:000.000,M8698:000.000,M8708:000.000,M8714:000.000,M8718:000.000,M8758:000.000,M8915:000.000,M8928:000.000,M8952:000.000,M8954:000.000,M8976:000.000,M8992:000.000,M9004:000.000,M9035:000.000,M9065:000.000,M9220:000.000,M9281:000.000,M9282:000.000,M9297:000.000,M9301:000.000,M9351:000.000,M9420:000.000,M9431:000.000,M9469:000.000,M9549:000.000,M9567.1,M9691:000.000,M9693:000.000,M9699:000.000,M9716:000.000,M9729:000.000,M9752:000.000,M9771:000.000,M9853:000.000,M9857:000.000,M9864:000.000,M9924:000.000,M9927:000.000,M9945:000.000,M9961:000.000,M9971:000.000,M10001:000.000,M10007:000.000,M10010:000.000,M10013:002.001,M10068:000.000,M10121:000.000,M10125:000.000,M10137:001.001,M10148:000.000,M10155:000.000,M10248:000.000,M9215:001.000",
"s.eVar13":"389242",
"s.prop19":"1",
"s.events":"event324,event319,event320",
"s.prop18":"D=v6",
"s.prop5":"389242",
"s.prop15":"1",
"s.prop3":"Manila, National Capital Region, Philippines",
"s.prop14":"D=v7",
"s.prop36":"|SI:anonymous|VS:returnVisitor|HCR:notApplicable|FC:notApplicable|NS:unknown|TI:notApplicable|SM:notApplicable|IR:anonymous|",
"s.eVar93":"aws.us-west-2.unknown",
"s.prop2":"Price - low to high"
}
}
}
}
}
}

这是我的php代码。

<?php  
$filepath = '05-03-21.json'; 
$json_string = file_get_contents($filepath); 
$json_data = json_decode($json_string,true); 
$json_data = json_decode($json_string,true); 
foreach ($json_data as $var_1 ) {
foreach ($var_1['searchResults'] as $var_2 ) {
echo "Hotel Name: ".$var_2['name']."<br>";
echo "Ratings: ".$var_2['starRating']."<br>";
echo "Location: ".$var_2['address']['locality']."<br>";
}
}
?>

我想要做的就是像这样显示Data with循环。图像在这里

解析正确的数组:

foreach ($json_data['data']['body']['searchResults']['results'] as $var_1 ) {
echo "Hotel Name: ".$var_1['name']."<br>";
echo "Ratings: ".$var_1['starRating']."<br>";
echo "Location: ".$var_1['address']['locality']."<br />========<br />";
}

最新更新