json_decode() - JSON Object to PHP Object

Q

How to access properties from the PHP object returned from json_decode() on a JSON object?

✍: FYIcenter.com

A

By default, json_decode() will convert a JSON Object to a PHP object of the default class "stdClass".

There are different ways to access properties in the output PHP object:

  • $obj->property_name - Returns the property value of the given property name, if the name is a proper PHP name.
  • $obj->{"property name"} - Returns the property value of the given property name, if the name contains special characters.
  • get_object_vars($obj) - Returns an array of all property names and values.

Here is a PHP example that shows you how to access properties from the object returned by json_decode():

<?php
# json_decode_object.php
# Copyright (c) FYIcenter.com 

   $json = '{"a":1,"b":2,"x-y":3}';
   print("\nInput: ".$json."\n");

# Decoded into an object
   $obj = json_decode($json);
   print("\nOutput Object:\n");
   print("   Type: ".gettype($obj)."\n");
   print("   Class: ".get_class($obj)."\n");
   print("   ->a: ".$obj->a."\n");
   print("   ->x-y: ".$obj->{"x-y"}."\n");

# Dump the object
   print("\nOutput Object Dump:\n");
   var_dump($obj);

# Converts the object to an array
   $array = get_object_vars($obj);
   print("\nArray Dump:\n");
   var_dump($array);
?>

If you run the above PHP code through the PHP engine, you get the following output:

>\fyicenter\php\php.exe json_decode_object.php

Input: {"a":1,"b":2,"x-y":3}

Output Object:
   Type: object
   Class: stdClass
   ->a: 1
   ->x-y: 3

Output Object Dump:
object(stdClass)#1 (3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["x-y"]=>
  int(3)
}

Array Dump:
array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["x-y"]=>
  int(3)
}

 

Using JSON in PHP

⇒⇒JSON Tutorials

2017-08-17, 115👍, 0💬