Я хотел бы десериализовать JSON для объекта, имеющего отношение сущности.deserialize json для массива объектов
входящие данные JSON
{
"name": "john",
"books": [
{
"title": "My life"
}
]
}
результат JSon десериализации как этот
$object = $this->get('serializer')->deserialize($jsonData, 'Author', 'json');
является
Author { #name: 'john' #books: array:1 [ 0 => array:1 [ "title" => "My life" ] ] }
Я хотел бы десериализации на объект, как это
Author { #name: 'john' #books: array:1 [ Book { "title" => "My life" } ] }
Я понимаю, почему десериализация не позволяет десериализовать Книгу. С JMSSerialzerBundle существует аннотация типа, чтобы разрешить этот случай.
Возможно ли это сделать с помощью компонента Symfony Serializer или я должен использовать JMSSerializer для этого?
Спасибо за помощь;)
Мои объекты
class Author
{
private $name;
private $books;
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* @return mixed
*/
public function getBooks()
{
return $this->books;
}
/**
* @param mixed $books
*/
public function setBooks(array $books)
{
$this->books = $books;
}
}
class Book
{
private $title;
private $author;
/**
* @return mixed
*/
public function getTitle()
{
return $this->title;
}
/**
* @param mixed $title
*/
public function setTitle($title)
{
$this->title = $title;
}
/**
* @return mixed
*/
public function getAuthor()
{
return $this->author;
}
/**
* @param mixed $author
*/
public function setAuthor(Author $author)
{
$this->author = $author;
}
}
Что особенно вы хотите сделать? Отправить некоторые данные в API для отдыха? – Tobias
Просто хочу упомянуть, что есть доктрина dbal driver для отдыха, поэтому вам не нужно заботиться почти ни о чем. – Tobias
@Tobias я реализую веб-сервис «API like», но я не использую доктрину для сохранения данных. Я хочу десериализовать данные для объекта (с ассоциациями сущностей) с нарушениями ограничений. – guns17