Преобразование и удаление скобок из JSON с помощью PHP - PullRequest
0 голосов
/ 31 мая 2019

Каков будет лучший способ упростить этот JSON?Моя функция возвращает json следующим образом:

   {
    "token": {
        "0": "MJfdZLQRsu42VmUFzc9jozCa6mtJ0KJwziBEv3IXfr9RW_uhws",
        "user_id": 123,
        "username": "name"
    }
}

Моя цель заключается в следующем:

{
   'token': "MJfdZLQRsu42VmUFzc9jozCa6mtJ0KJwziBEv3IXfr9RW_uhws",
   'username: "name",
   'user_id': '168'
}

Этот метод возвращает json:

class MyJWTManager extends JWTManager
{
    public function create(UserInterface $user)
    {
        $payload = ['roles' => null];
        $this->addUserIdentityToPayload($user, $payload);

        $jwtCreatedEvent = new JWTCreatedEvent($payload, $user);
        $this->dispatcher->dispatch(Events::JWT_CREATED, $jwtCreatedEvent);

        $jwtString = $this->jwtEncoder->encode($jwtCreatedEvent->getData());

        $jwtEncodedEvent = new JWTEncodedEvent($jwtString);
        $this->dispatcher->dispatch(Events::JWT_ENCODED, $jwtEncodedEvent);

        return [
            $jwtString,
            'user_id' => $user->getId(),
            'username' => $user->getUsername()
        ];
        // return $jwtString // outputs "token": "ssdsmdmasdms;dm;samd;msdm;sdm;sdm"    
        //return $userInfo;

    }
}

1 Ответ

0 голосов
/ 01 июня 2019

Извлеките значение токена и верните его как часть возвращаемого массива

class MyJWTManager extends JWTManager
{
    public function create(UserInterface $user)
    {
        $payload = ['roles' => null];
        $this->addUserIdentityToPayload($user, $payload);

        $jwtCreatedEvent = new JWTCreatedEvent($payload, $user);
        $this->dispatcher->dispatch(Events::JWT_CREATED, $jwtCreatedEvent);

        $jwtString = $this->jwtEncoder->encode($jwtCreatedEvent->getData());

        $jwtEncodedEvent = new JWTEncodedEvent($jwtString);
        $this->dispatcher->dispatch(Events::JWT_ENCODED, $jwtEncodedEvent);
        $ra=json_decode($jwtString,1);
        return [
            'token' => $ra['token'],
            'user_id' => $user->getId(),
            'username' => $user->getUsername()
        ];

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...