【问题标题】:Convert class object to JSON in PHP在 PHP 中将类对象转换为 JSON
【发布时间】:2016-07-12 15:38:56
【问题描述】:

我在 Laravel 的控制器上低于 Class 对象响应。

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) "admin@gmail.com"
 ["is_admin":"DayJibe\Core\User\Entities\User":private]=>
 string(1) "N"
 }

现在我需要将此响应转换为 JSON。有什么方法可以做到这一点吗?

【问题讨论】:

标签: php json oop laravel-5.2


【解决方案1】:

好的,我做了什么来解决这个问题。 $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);

$response = "{"id":1,"name":"admin","email":"admin@gmail.com","is_admin":"N","generatedToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 .eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL2RheWppYmUubG9jYWxob3N0LmNvbVwvYXBpXC92MS4wXC9zZXNzaW9ucyIsImlhdCI 6MTQ2ODM0NjQ0OCwiZXhwIjoxNDY4MzUwMDQ4LCJuYmYiOjE0NjgzNDY0NDgsImp0aSI6IjU2ZTUzOTgxNTliNDA4M2I4Y2M5MmNlNWE4OGY0MDY3In0 .oLq6L8LM36n9KB2KN8asoKKfhVYOeBVUz1jjfjVGfL4"}";

【讨论】:

    【解决方案2】:

    告诉用户给你一个自己的 JSON 表示。

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

    从你的控制器中这样称呼它:

    $userJson = $session->toJson();
    

    【讨论】:

      猜你喜欢
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多