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

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.