2016-07-12 4 views
0

Ich bin unter Klassenobjekt Antwort an meinem Controller in Laravel.Konvertieren Klassenobjekt in JSON in PHP

object(DayJibe\Core\User\Entities\User)#221 (5) { 
["id":"DayJibe\Core\User\Entities\User":private]=> 
int(1) 
["name":"DayJibe\Core\User\Entities\User":private]=> 
string(5) "admin" 
["email":"DayJibe\Core\User\Entities\User":private]=> 
string(15) "[email protected]" 
["is_admin":"DayJibe\Core\User\Entities\User":private]=> 
string(1) "N" 
} 

Jetzt muss ich diese Antwort auf JSON konvertieren.Ist es eine Möglichkeit, dies zu tun?

+1

json_encode: http://php.net/manual/en/function.json-encode.php, und wenn Sie diese Rückkehr sind Als Antwort von einem Controller siehe: https://laravel.com/docs/5.2/responses#json-responses –

+0

Werfen Sie einen Blick auf die Funktion json_encode –

+1

Mögliche Duplikate von [Create JSON-Objekt den richtigen Weg] (http: //stackoverflow.com/questions/3281354/create-json-object-the-correct-way) – Jocelyn

Antwort

0

OK, was ich getan habe, um das zu lösen. $ session = "Klassenobjekt wie oben erwähnt";

$objClass = new \ReflectionClass($session); 

    $classProperties = $objClass->getProperties(); 

    foreach ($classProperties as $propertie) 
    { 
     $propertie->setAccessible(true); 
     $arrayForJSON[$propertie->getName()] = $propertie->getValue($session); 
    } 

    return $response = Response()->json($arrayForJSON); 

$ response = "{" id ": 1," name ":" admin“, "E-Mail": "[email protected]", "is_admin": "N", "generatedToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 .eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL2RheWppYmUubG9jYWxob3N0LmNvbVwvYXBpXC92MS4wXC9zZXNzaW9ucyIsImlhdCI 6MTQ2ODM0NjQ0OCwiZXhwIjoxNDY4MzUwMDQ4LCJuYmYiOjE0NjgzNDY0NDgsImp0aSI6IjU2ZTUzOTgxNTliNDA4M2I4Y2M5MmNlNWE4OGY0MDY3In0 .oLq6L8LM36n9KB2KN8asoKKfhVYOeBVUz1jjfjVGfL4"} ";

0

Bitten Sie den Benutzer, Ihnen eine JSON-Darstellung seiner selbst zu geben.

class User { 

    private $id; 
    private $name; 
    private $email; 
    private $is_admin; 

    /** 
    * Gives a JSON representation of this user 
    * @return string 
    */ 
    public function toJson() { 
     return json_encode([ 
      'id' => $this->id, 
      'name' => $this->name, 
      'email' => $this->email, 
      'is_admin' => (bool) $this->is_admin 
     ]); 
    } 

} 

von Ihrem Controller nennen es etwa so:

$userJson = $session->toJson();