Estoy pasando una cadena con codificación JSON a json_decode()
y espero que su resultado sea un tipo de objeto, pero en su lugar obtengo un tipo de cadena. ¿Cómo puedo devolver un objeto?json_decode devuelve el tipo de cadena en lugar del objeto
En la documentación, el siguiente devuelve un objeto:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
Sin embargo, si json_encode()
la cadena primero y luego llamo json_decode()
, la salida es una cadena y no un objeto:
$json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}');
var_dump(json_decode($json));
Esto es solo un ejemplo simplificado. En la práctica, lo que estoy haciendo es presionar una cadena codificada en JSON para PHP a través de AJAX. Sin embargo, ilustra el problema de convertir esta cadena JSON codificada a un objeto que puedo leer en PHP, por ejemplo, "$json->a
".
¿Cómo puedo devolver un tipo de objeto?
gracias por las respuestas! El contexto real para esta pregunta fue am usando una Respuesta JSON de una API. Pero cuando hago el json_decode a esta respuesta e intento acceder a los valores como - $ json = json_decode (respuesta json de la API); echo $ json-> a me da un error: el objeto de la clase stdClass No se pudo convertir a cadena
¿Por qué quiere para codificar un JSON ya codificado? EX: '$ json = json_encode ('{" a ": 1," b ": 2," c ": 3," d ": 4," e ": 5}');'? – Cosmin
Está codificando una cadena, no un objeto, así que obviamente obtendrá una cadena cuando la descodifique. – Musa
absolutamente correcto musa.! si está pasando una cadena de cómo podría esperar para el objeto? –