Sto passando una stringa con codifica JSON a json_decode()
e mi aspetto che il suo output sia un tipo di oggetto, ma sto ottenendo invece un tipo di stringa. Come posso restituire un oggetto?json_decode restituisce il tipo di stringa anziché l'oggetto
Nei documenti, il seguente restituisce un oggetto:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
Tuttavia, se json_encode()
la stringa e poi chiamo json_decode()
, l'uscita è una stringa e non un oggetto:
$json = json_encode('{"a":1,"b":2,"c":3,"d":4,"e":5}');
var_dump(json_decode($json));
Questo è solo un esempio semplificato. In pratica quello che sto facendo è spingere una stringa con codifica JSON in PHP tramite AJAX. Tuttavia, illustra il problema della conversione di questa stringa JSON codificata in un oggetto che posso leggere in PHP, ad esempio "$json->a
".
Come posso restituire un tipo di oggetto?
grazie per le risposte! L'attuale contesto per questa domanda stava usando una risposta JSON da un'API. Ma quando faccio il json_decode a questa risposta e provo ad accedere ai valori come - $ json = json_decode (json response from API); echo $ json-> un mi dà un errore: L'oggetto di classe stdClass non poteva essere convertito in stringa
Perché vuoi per codificare un JSON già codificato? EX: '$ json = json_encode ('{" a ": 1," b ": 2," c ": 3," d ": 4," e ": 5}');'? – Cosmin
Stai codificando una stringa, non un oggetto, quindi ovviamente otterrai una stringa quando la decodifichi. – Musa
assolutamente giusto musa.! se passi una stringa di quanto potresti aspettarti per l'oggetto? –