Como recuperar datos de JSON (stdClass Object)?

  • Autor Autor ramiro013
  • Fecha de inicio Fecha de inicio
ramiro013

ramiro013

Delta
Verificación en dos pasos activada
Verificado por Whatsapp
Hola, gente!
Recurro a ustedes, a ver si me pueden dar una mano con esto.
Tengo un JSON al que no encuentro la manera de recuperar sus datos, me podrían orientar?
Hice un print_r y me muestra esto (copio solo una parte):

Insertar CODE, HTML o PHP:
stdClass Object
(
    [count] => 148
    [filters] => stdClass Object
        (
        )

    [competitions] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 2006
                    [area] => stdClass Object
                        (
                            [id] => 2001
                            [name] => Africa
                        )

                    [name] => WC Qualification
                    [code] => 
                    [emblemUrl] => 
                    [plan] => TIER_FOUR
                    [currentSeason] => stdClass Object
                        (
                            [id] => 7
                            [startDate] => 2015-10-07
                            [endDate] => 2017-11-14
                            [currentMatchday] => 6
                            [winner] => 
                        )

                    [numberOfAvailableSeasons] => 1
                    [lastUpdated] => 2018-06-04T23:54:04Z
                )

            [1] => stdClass Object
                (
                    [id] => 2025
                    [area] => stdClass Object
                        (
                            [id] => 2011
                            [name] => Argentina
                        )

                    [name] => Supercopa Argentina
                    [code] => 
                    [emblemUrl] => 
                    [plan] => TIER_FOUR
                    [currentSeason] => stdClass Object
                        (
                            [id] => 430
                            [startDate] => 2019-04-04
                            [endDate] => 2019-04-04
                            [currentMatchday] => 
                            [winner] => 
                        )

                    [numberOfAvailableSeasons] => 2
                    [lastUpdated] => 2019-05-03T05:08:18Z
                )
 
Puedes recorrer con un foreach el elemento raiz 'competitions' y de hay ir sacando los datos que vayas necesitando
 
Necesitas con PHP?

PHP:
<?php
    $datos = '{
    "nombre": "Ramiro013",
    "foro": "forobeta"
}';

$usuario = json_decode($datos);
echo $usuario->nombre;
?>
 
A las propiedades de un objeto, en este caso "stdClass" que significa "Standard Class", es decir la clase estándar, se accede mediante una flecha, como te comentan arriba "$var->propiedad"
Si son índices numéricos consecutivo desde 0 y el var_dump te devuelve que es del tipo array, sí puedes acceder mediante corchetes
Y por último, si usas un booleano true como segundo parámetro en json_decode, lo convertirá a array, extendiendo el ejemplo del compañero de arriba

PHP:
<?php
    $datos = '{
    "nombre": "Ramiro013",
    "foro": "forobeta",
    "logros": ["logro1","logro2","logro3"]
}';

$usuario = json_decode($datos);
$usuario_array = json_decode($datos,true);
echo $usuario->nombre; // Ramiro013
echo $usuario->logros[1]; // Logro2
echo $usuario_array['nombre']; // Ramiro013
echo $usuario_array['logros'][0]; // Logro 1
?>
 
A las propiedades de un objeto, en este caso "stdClass" que significa "Standard Class", es decir la clase estándar, se accede mediante una flecha, como te comentan arriba "$var->propiedad"
Si son índices numéricos consecutivo desde 0 y el var_dump te devuelve que es del tipo array, sí puedes acceder mediante corchetes
Y por último, si usas un booleano true como segundo parámetro en json_decode, lo convertirá a array, extendiendo el ejemplo del compañero de arriba

PHP:
<?php
    $datos = '{
    "nombre": "Ramiro013",
    "foro": "forobeta",
    "logros": ["logro1","logro2","logro3"]
}';

$usuario = json_decode($datos);
$usuario_array = json_decode($datos,true);
echo $usuario->nombre; // Ramiro013
echo $usuario->logros[1]; // Logro2
echo $usuario_array['nombre']; // Ramiro013
echo $usuario_array['logros'][0]; // Logro 1
?>

Ahí va! Impecable.
Estaba usando corchetes jajaja.
Muchas gracias a los tres!
 
Atrás
Arriba