0

I have a JSON response that I'm trying to gather data from. Most of the data is not needed but the way it is structured I'm having a tough time figuring out how to just get the data I need. The strings and values are paired kinda weird.

I need to be able to pull the data using PHP, and I need the info from the characteristic fields. Specifically, I need to pull the value for "qualificationTier".

What would I use to pull that string/value from this JSON response?

{
    "externalId": "testinc-334",
    "site": [
        {
            "id": "site-281",
            "href": "qualification/site-281",
            "description": "Service Qualification Successful",
            "interactionDate": "2022-01-22T21:09:53.843Z",
            "interactionDateComplete": "2022-01-22T21:09:59.873Z",
            "interactionStatus": "Success",
            "place": {
                "id": "00000TBKM3",
                "href": "site/00000TBKM3",
                "characteristic": [
                    {
                        "name": "latitude",
                        "value": "32.98972"
                    },
                    {
                        "name": "longitude",
                        "value": "-117.271838"
                    },
                    {
                        "name": "region",
                        "value": "INREGION"
                    },
                    {
                        "name": "npa",
                        "value": "858"
                    },
                    {
                        "name": "nxx",
                        "value": "720"
                    },
                    {
                        "name": "lata",
                        "value": "732"
                    },
                    {
                        "name": "swCLLI",
                        "value": "DLMRCA12"
                    },
                    {
                        "name": "buildingCLLI",
                        "value": "SOBHCAWE"
                    },
                    {
                        "name": "ILECVendorName",
                        "value": "PACIFIC BELL"
                    },
                    {
                        "name": "affiliateName",
                        "value": "AT&T California"
                    },
                    {
                        "name": "unitType",
                        "value": "STE"
                    },
                    {
                        "name": "unitValue",
                        "value": "200"
                    },
                    {
                        "name": "standardAddress",
                        "value": "215 S HIGHWAY 101 STE 200,SOLANA BEACH,CA,92075-1847"
                    },
                    {
                        "name": "qualificationTier",
                        "value": "Tier 2"
                    },
                    {
                        "name": "fiberFastQualIndicator",
                        "value": "Y"
                    },
                    {
                        "name": "fiberStatus",
                        "value": "Fiber Lit"
                    }
                ]
            },
            "serviceAvailability": {
                "service": [
                    {
                        "id": "adi0001",
                        "href": "/service/adi0001",
                        "name": "Customer Managed ADI",
                        "availability": "available",
                        "serviceabilityDate": "2022-01-22T21:09:59.880Z",
                        "serviceSpecification": [
                            {
                                "id": "miseth0000002uo",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000002uo",
                                "name": "Customer Managed ADI 2 Mbps Ethernet (Optical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "2"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "2"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Optical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000002ue",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000002ue",
                                "name": "Customer Managed ADI 2 Mbps Ethernet (Electrical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "2"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "2"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Electrical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000005uo",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000005uo",
                                "name": "Customer Managed ADI 5 Mbps Ethernet (Optical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "5"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "5"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Optical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000005ue",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000005ue",
                                "name": "Customer Managed ADI 5 Mbps Ethernet (Electrical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "5"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "5"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Electrical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000010uo",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000010uo",
                                "name": "Customer Managed ADI 10 Mbps Ethernet (Optical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "10"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "10"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Optical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000010ue",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000010ue",
                                "name": "Customer Managed ADI 10 Mbps Ethernet (Electrical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "10"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "10"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Electrical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000020uo",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000020uo",
                                "name": "Customer Managed ADI 20 Mbps Ethernet (Optical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "20"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "20"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Optical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000020ue",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000020ue",
                                "name": "Customer Managed ADI 20 Mbps Ethernet (Electrical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "20"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "20"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Electrical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000050uo",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000050uo",
                                "name": "Customer Managed ADI 50 Mbps Ethernet (Optical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "50"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "50"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Optical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000050ue",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000050ue",
                                "name": "Customer Managed ADI 50 Mbps Ethernet (Electrical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "50"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "50"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Electrical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            {
                                "id": "miseth0000100uo",
                                "availability": "available",
                                "href": "/serviceSpecification/miseth0000100uo",
                                "name": "Customer Managed ADI 100 Mbps Ethernet (Optical)",
                                "characteristic": [
                                    {
                                        "name": "serviceCode",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "accessType",
                                        "value": "fiber"
                                    },
                                    {
                                        "name": "serviceType",
                                        "value": "Symmetric"
                                    },
                                    {
                                        "name": "speedUnit",
                                        "value": "Mbps"
                                    },
                                    {
                                        "name": "downloadSpeed",
                                        "value": "100"
                                    },
                                    {
                                        "name": "uploadSpeed",
                                        "value": "100"
                                    },
                                    {
                                        "name": "connectivity",
                                        "value": "Optical"
                                    },
                                    {
                                        "name": "productAbbreviation",
                                        "value": "ADI"
                                    },
                                    {
                                        "name": "fiberFastQualType",
                                        "value": "ONNET"
                                    }
                                ]
                            },
                            
                            
                            ```

2 Answers2

0

Check if this works.

<?php

$data = json_decode($your_json);

$qualificationTier = "qualificationTier"; 

// qualificationTier name is at position 13 in characteristic array

$QualificationTierName = $data->site->place->characteristic[13]->name;

$QualificationTierValue = "";

// Confirm indeed if the string name at position 13 in characteristics is indeed qualificationTier before retrieving the value at the same position
if(strcmp($qualificationTier, $QualificationTierName) == 0 ){

    // qualificationTier value is at position 13 in characteristic array
    $QualificationTierValue = $data->site->place->characteristic[13]->value;
    echo "QualificationTier Name : " + $QualificationTierName; 
    echo "QualificationTier Value : " + $QualificationTierValue;
}

?>
Joseph
  • 789
  • 1
  • 9
  • 23
  • ok, so this one isn't working due to the qualificationTier position changing depending on if the address has a SUITE value or not. So I don't think this will work. Code was easy to understand though. So I appreciate your help. – Chris Flores Jan 26 '22 at 04:40
0

A simple way would be to loop the array and get value when the name matches your field. You should first decode the json response so you will have an object to work with. Then just loop and set the variable when you have a match.

<?php

$response = json_decode($_POST['json-name']);

$qualificationTier = null;

foreach ($response->site->place->characteristic as $c) {
    if ($c->name === 'qualificationTier') {
        $qualificationTier = $c->value;
    }
}
  • So I've been trying to wrap my head around this one, but I can't get it to work. $response = curl_exec($curl); curl_close($curl); This is the code that immediately precedes the code I'm trying to put in. Would I use $reponse = json_decode($_POST[$reponse]); – Chris Flores Jan 26 '22 at 04:40
  • Ahh I see, in case of getting the JSON through curl you should first establish the connection. And then get the response with curl_exec. Example in accepted answer: https://stackoverflow.com/questions/16700960/how-to-use-curl-to-get-json-data-and-decode-the-data. So json_decode the result of curl_exec(). – Rob Meijerink Jan 26 '22 at 11:02