PHP, convertire json in oggetto

di il
1 risposte

PHP, convertire json in oggetto

Ciao Ragazzi,
ho un piccolo problema nel recuperare alcune informazioni da un JSON.

dal front-end chiamo una mia pagina php e passo questo json:

{utentiDaCancellare: [{id: "42"}, {id: "43"}]}
la pagina pagina php è composta così:

<?php
require_once '/oggetti/Utenti.php';
$utentiDaCancellare = new Utenti();

$request = file_get_contents('php:\\input');
$utentiDaCancellare = json_decode($request, true);

      $arr = array_values($utentiDaCancellare );
        foreach ($arr as $key => $value)
        {
            //print_r($key);
            print_r($value);
            
        }
?>

La classe Utenti:

<?php 
class Utenti implements JsonSerializable
{

    public ?UtentiDaCancellare $utentiDaCancellare;
    
    
    public function getUtentiDaCancellare()
    {
        return $this->utentiDaCancellare;
    }


    public function setUtentiDaCancellare($utentiDaCancellare)
    {
        $this->utentiDaCancellare = $utentiDaCancellare;
    }

    public function jsonSerialize()
    {}
}

class UtentiDaCancellare implements JsonSerializable
{
    public function getId() {
        return $this->id;
    }
    public function setId($id) {
        $this->id = $id;
    }
    public $id; //String
    
    public function jsonSerialize()
    {}
    
}
?>
Il valore che mi stampa è:

Array
(
    [0] => Array
        (
            [id] => 42
        )

    [1] => Array
        (
            [id] => 43
        )

)

adesso, come faccio a recuperarmi id 1, id 2? le sto provando tutte

Grazie a tutti

1 Risposte

  • Re: PHP, convertire json in oggetto

    Se il valore dentro
    $value
    è un altro array devi fare un nuovo ciclo
    
    
    foreach ($arr as $key => $value){
    		foreach ($value as $v){
                         print_r($v->id); 
                    }
     }
    
    
    Oppure se conosci la posizione esatta (numero fisso di items nell'array)
    
    foreach ($arr as $key => $value){
    	print_r($value[0]->id); 
    	print_r($value[1]->id);
    	......
    }
    

    Bye
Devi accedere o registrarti per scrivere nel forum
1 risposte