I'm trying to access some nested values in my JSON body that I retrieve.
The request url is as follows: https://pilotapi01.telkom.co.za/gateway/serviceQualification/v1/46165547
This returns the following JSON:
{
"id": "46165547",
"href": "/serviceQualificationRequest/46165547",
"interactionDate": "20220704 08:49:02",
"description": "OpenServe Service Qualification",
"eligibilityDate": "20220704 08:49:02",
"qualificationState": "Done",
"address": {
"id": "46165547",
"href": "/api/address/46165547",
"customerPointRegion": "None",
"localExchangeName": "None",
"localStationCode": "None",
"MEPOPRegion": "None",
"MEExchangeName": "None",
"DistanceCustomerToMetroMDF": "-1",
"DistanceCustomerToLocalMDF": "-1",
"DistanceLocalMDFtoMEMDF": "-1"
},
"addressDescription": {
"mduFlag": "NO",
"streetNr": "92",
"streetName": "MILLS",
"streetType": "ST",
"locality": "STRAND",
"city": "STRAND",
"stateOrProvince": "WESTERN CAPE",
"country": "South Africa"
},
"geoCode": {
"latitude": "-34.108223",
"longitude": "18.835977",
"geographicDatum": "WGS84"
},
"physicalTerminationPoint": [
{
"accessType": "SPACE"
},
{
"accessType": "DSL"
},
{
"accessType": "FIBRE"
}
],
"serviceQualificationItem": [
{
"service": {
"serviceCharacteristic": [
{
"name": "Description",
"value": "SPACE"
}
],
"serviceSpecification": {
"id": "OPENSERVE SPACE CONNECT",
"href": "https://connect.openserve.co.za/product/broadband/space-connect",
"serviceCategoryId": "SPACE",
"serviceSpecificationCharacteristic": [
{
"id": "GIS001",
"name": "upstreamSpeed",
"valueto": "50 Mbps"
},
{
"id": "GIS002",
"name": "downstreamSpeed",
"valueto": "50 Mbps"
}
]
}
},
"availability": "Available",
"serviceabilityDate": "20220704 08:49:02"
},
{
"service": {
"serviceCharacteristic": [
{
"name": "Description",
"value": "DSL"
}
],
"serviceSpecification": {
"id": "OPENSERVE COPPER CONNECT",
"href": "https://connect.openserve.co.za/product/broadband/copper-connect",
"serviceCategoryId": "DSL",
"serviceSpecificationCharacteristic": [
{
"id": "GIS001",
"name": "upstreamSpeed",
"valueto": "0.5 Mbps"
},
{
"id": "GIS002",
"name": "downstreamSpeed",
"valueto": "20 Mbps"
}
]
}
},
"availability": "available",
"serviceabilityDate": "20220704 08:49:02"
},
{
"service": {
"serviceCharacteristic": [
{
"name": "Description",
"value": "DSL"
}
],
"serviceSpecification": {
"id": "OPENSERVE PURE CONNECT",
"href": "https://connect.openserve.co.za/product/broadband/pure-connect",
"serviceCategoryId": "DSL",
"serviceSpecificationCharacteristic": [
{
"id": "GIS001",
"name": "upstreamSpeed",
"valueto": "0.5 Mbps"
},
{
"id": "GIS002",
"name": "downstreamSpeed",
"valueto": "20 Mbps"
}
]
}
},
"availability": "available",
"serviceabilityDate": "20220704 08:49:02"
},
{
"service": {
"serviceCharacteristic": [
{
"name": "Description",
"value": "FIBRE"
}
],
"serviceSpecification": {
"id": "OPENSERVE FIBRE CONNECT",
"href": "https://connect.openserve.co.za/product/broadband/fibre-connect",
"serviceCategoryId": "FIBRE",
"serviceSpecificationCharacteristic": [
{
"id": "GIS001",
"name": "upstreamSpeed",
"valueto": "250 Mbps"
},
{
"id": "GIS002",
"name": "downstreamSpeed",
"valueto": "500 Mbps"
}
]
}
},
"availability": "Unavailable"
},
{
"service": {
"serviceCharacteristic": [
{
"name": "Description",
"value": "FIBRE"
}
],
"serviceSpecification": {
"id": "OPENSERVE OFFICE CONNECT FIBRE",
"href": "https://connect.openserve.co.za/product/broadband/fibre-connect",
"serviceCategoryId": "FIBRE",
"serviceSpecificationCharacteristic": [
{
"id": "GIS001",
"name": "upstreamSpeed",
"valueto": "250 Mbps"
},
{
"id": "GIS002",
"name": "downstreamSpeed",
"valueto": "500 Mbps"
}
]
}
},
"availability": "Unavailable"
},
{
"service": {
"serviceCharacteristic": [
{
"name": "Description",
"value": "FIBRE"
}
],
"serviceSpecification": {
"id": "OPENSERVE INFRASTRUCTURE BROADBAND",
"href": "https://connect.openserve.co.za/product/broadband/fibre-connect",
"serviceCategoryId": "FIBRE",
"serviceSpecificationCharacteristic": [
{
"id": "GIS001",
"name": "upstreamSpeed",
"valueto": "250 Mbps"
},
{
"id": "GIS002",
"name": "downstreamSpeed",
"valueto": "500 Mbps"
}
]
}
},
"availability": "Unavailable"
}
]
}
I want to access serviceQualificationItem->serviceSpecification->serviceSpecificationCharacteristic's values so I can use them in a foreach loop to output like this example:
// From previous request
$addressID = $address->id;
$request2 = wp_remote_get( 'https://pilotapi01.telkom.co.za/gateway/serviceQualification/v1/'.$addressID.'');
$info = wp_remote_retrieve_body( $request2 );
$package = json_decode( $info , true );
if( ! empty( $package ) ) {
echo '<div class="output-wrapper">';
foreach( $package as $details ) {?>
<div class="package-box">
<div><b>ID: </b> <?php echo $details->serviceQualificationItem->serviceSpecification->serviceSpecificationCharacteristic->ID ?> </div>
</div>
<?php }
echo '</div>';
}