fork download
  1. <?php
  2.  
  3. $string_json='{
  4. "title": "Person",
  5. "type": "object",
  6. "properties": {
  7. "firstName": "Pedro",
  8. "lastName": "Sánchez",
  9. "age": {
  10. "description": "Age in years",
  11. "type": "integer",
  12. "minimum": 0
  13. }
  14. },
  15. "required": ["firstName", "lastName"]
  16. }';
  17.  
  18. //Crar objeto json
  19. $json=json_decode($string_json);
  20.  
  21. echo "Acceder por nombres de clave:\n";
  22. echo "Valor de la clave title: ". $json->title;
  23. echo "\nValor de la clave firstName (dentro de properties): ". $json->properties->firstName;
  24. echo "\n\nAlgunas claves pueden tener arrays dentro";
  25. echo "\nValores de required (Array): 1er elemento: ". $json->required[0]. " 2º elemento: ".$json->required[1];
  26.  
  27.  
  28. //Iterando
  29. echo "\nAcceder por iterator:\n";
  30. iterator (json_decode($string_json,true));
  31.  
  32. echo "\nSi no se conoce el contenido y la estructura se puede usar print_r:\n";
  33. print_r ($json);
  34.  
  35. function iterator ($json)
  36. {
  37. $jsonIterator = new RecursiveIteratorIterator(
  38. new RecursiveArrayIterator($json),
  39. RecursiveIteratorIterator::SELF_FIRST);
  40.  
  41. foreach ($jsonIterator as $key => $val) {
  42. if(is_array($val)) {
  43. echo "$key:\n";
  44. } else {
  45. echo "$key => $val\n";
  46. }
  47. }
  48. }
Success #stdin #stdout 0s 83136KB
stdin
Standard input is empty
stdout
Acceder por nombres de clave:
Valor de la clave title: Person
Valor de la propiedad firstName: Pedro

Algunas claves pueden tener arrays dentro
Valores de required (Array): 1er elemento: firstName 2º elemento: lastName
Acceder por iterator:
title => Person
type => object
properties:
firstName => Pedro
lastName => Sánchez
age:
description => Age in years
type => integer
minimum => 0
required:
0 => firstName
1 => lastName

Si no se conoce el contenido y la estructura se puede usar print_r:
stdClass Object
(
    [title] => Person
    [type] => object
    [properties] => stdClass Object
        (
            [firstName] => Pedro
            [lastName] => Sánchez
            [age] => stdClass Object
                (
                    [description] => Age in years
                    [type] => integer
                    [minimum] => 0
                )

        )

    [required] => Array
        (
            [0] => firstName
            [1] => lastName
        )

)