Jump to content

PHP - JSON Nested


micky007

Recommended Posts

Hi Guys,

One of my API providers has recently updated the way they output data in JSON to the following:

{
  "ua":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko\/20100101 Firefox\/65.0",
  "type":"browser",
  "brand":null,
  "name":null,
  "url":"https:\/\/www.mozilla.org\/",
  "os":{
    "name":"Windows 10",
    "code":"windows_10",
    "url":"https:\/\/en.wikipedia.org\/wiki\/Windows_10",
    "family":"Windows",
    "family_code":"windows",
    "family_vendor":"Microsoft Corporation.",
    "icon":"https:\/\/assets.userstack.com\/icon\/os\/windows10.png",
    "icon_large":"https:\/\/assets.userstack.com\/icon\/os\/windows10_big.png"
  },
  "device":{
    "is_mobile_device":false,
    "type":"desktop",
    "brand":null,
    "brand_code":null,
    "brand_url":null,
    "name":null
  },
  "browser":{
    "name":"Firefox",
    "version":"65.0",
    "version_major":"65",
    "engine":"Gecko"
  },
  "crawler":{
    "is_crawler":false,
    "category":null,
    "last_seen":null
  }
}

Previous the JSON data was not nested which means i now need to update my code to grab the values, I cant work out how to grab nested values, below is my code working off the old JSON output. How do i go about grabbing the data now with the new format?

	$ch = curl_init();

									curl_setopt($ch, CURLOPT_URL, "URL-REMOVED");

									curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);



									$result = curl_exec($ch);

									$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);

									curl_close($ch);



									$apiresult = json_decode($result);	



									foreach($apiresult as $result) {

									  $ua_type = $result->ua_type;

									  $os_name = $result->os_name;

									  $os_version = $result->os_version;

									  $browser_name = $result->browser_name;

									  $browser_version = $result->browser_version;

									  $ua_brand = $result->ua_brand;

									  $ua_name = $result->ua_name;

									}

 

Link to comment
Share on other sites

Its ok guys, this can be marked as resolved. I've decided to re-code my work to make it better.

 

curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE );



									$json = curl_exec( $ch );
									curl_close( $ch );

									$api_result = json_decode( $json, true );

									$ua_type = $api_result[ 'device' ][ 'type' ];
									$os_name = $api_result[ 'os' ][ 'family' ];

									$os_version = $api_result[ 'os' ][ 'name' ];

									$browser_name = $api_result[ 'browser' ][ 'name' ];

									$browser_version = $api_result[ 'browser' ][ 'version' ];

									$ua_brand = $api_result[ 'device' ][ 'brand' ];

									$ua_name = $api_result[ 'device' ][ 'name' ];

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.