2016-07-12 9 views
0

私はLaravelのコントローラでClassオブジェクトのレスポンス以下になります。クラスオブジェクトをPHPのJSONに変換します

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" 
} 

このレスポンスをJSONに変換する必要があります。これを行う方法はありますか?

+1

json_encode:あなたのコントローラから

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 ]); } } 

はそうのようにそれを呼び出すhttp://php.net/manual/en/function.json-encode.php、そしてあなたはこれを返している場合コントローラーからの応答として:https://laravel.com/docs/5.2/responses#json-responses –

+0

json_encode関数をご覧ください –

+1

[JSONオブジェクトを正しい方法で作成する]の可能な複製(http: //stackoverflow.com/questions/3281354/create-json-object-the-correct-way) – Jocelyn

答えて

0

OK、これを解決するために何をしましたか? $ session = "上記のクラスオブジェクト";

$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); 

$応答= "{" ID ":1、" 名 ":" 管理者」、 "電子メール": "[email protected]"、 "is_admin": "N"、 "generatedToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 .eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL2RheWppYmUubG9jYWxob3N0LmNvbVwvYXBpXC92MS4wXC9zZXNzaW9ucyIsImlhdCI 6MTQ2ODM0NjQ0OCwiZXhwIjoxNDY4MzUwMDQ4LCJuYmYiOjE0NjgzNDY0NDgsImp0aSI6IjU2ZTUzOTgxNTliNDA4M2I4Y2M5MmNlNWE4OGY0MDY3In0 .oLq6L8LM36n9KB2KN8asoKKfhVYOeBVUz1jjfjVGfL4"}」。

0

JSON表現をユーザーに伝えてください。

$userJson = $session->toJson(); 
関連する問題