Сериализатор JMS десериализует вложенные объекты - PullRequest
0 голосов
/ 04 марта 2019

Я использую: https://jmsyst.com/libs/serializer

Для десериализации объектов json.В настоящее время у меня есть это:

/**
 * @param int $id
 * @return Customer
 * @throws \Http\Client\Exception
 */
public function get(int $id): Customer
{
    $response = $this->client->get('/customers/' . $id);

    $data = json_encode(json_decode(
        $response->getBody()->getContents()
    )->data->attributes);

    return $this
        ->serializer
        ->deserialize($data, Customer::class, 'json');
}

Полученный здесь json выглядит следующим образом:

   {
    "data": {
            "type": "customer",
            "id": "4356456",
            "links": {
                    "self":"https:\/\/api.ecurring.com\/customers\/345656"
            },
            "attributes": {
                    "gender": "m",
            "first_name": "Laurens"
        }
    }

Можно ли сказать, что JMS должен автоматически начинаться с data->attributes вместо того, чтобы делатьчто-то грязное, как это:

 $data = json_encode(json_decode(
            $response->getBody()->getContents()
        )->data->attributes);

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете проверить политику исключения.

Прочитайте документацию, это действительно полезно.

Политика исключения и Аннотация

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