Я пытаюсь десериализовать некоторые JSON в обычный старый PHP объект, используя JMS через Symfony 4.4 (LTS).
JSON выглядит примерно так:
{
"id": "c9cde632-ca23-4ed0-8b6d-05dfcbf1d994",
"someProperty": "This is the value",
"active": true,
"nestedProperty": {
"id": "78d46fb8-5f1a-4a00-89a6-4b96482b9ef6",
"name": "The Name"
}
}
У меня есть класс PHP, который выглядит примерно так:
<?php
class NestedExample
{
/** @var string $id */
private $id;
/** @var string $someProperty */
private $someProperty;
/** @var bool $active */
private $active;
// Fluent Getters and Setters
// ...
}
И это правильно десериализует вышеприведенные поля в объект.
Однако я хочу получить значения вложенного объекта в этот класс, также, делая что-то вроде:
/** @var string $nestedPropertyId */
private $nestedPropertyId;
/** @var string $nestedPropertyName */
private $nestedPropertyName;
Или, может быть, даже:
private $nestedProperty;
// Fluent Getter and Setter for $nestedProperty
/** @VirtualProperty("nestedPropertyId") */
public function getNestedPropertyId ()
{
return $this->getNestedProperty()->id;
}
Но ничего не работает.
Я делаю это неправильно? Я никогда не собираюсь сериализовать этот класс обратно в JSON. Преобразование всегда будет одним из способов.