我想將JSON反序列化爲具有實體關係的對象。將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" } ] }
我明白爲什麼反序列化不能反編譯Book。使用JMSSerialzerBundle時,存在Type註釋來解決這種情況。
是否可以使用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
只是想提到有一個休息的doctrine dbal驅動程序,所以你不需要關心幾乎任何東西 – Tobias
@Tobias我實現了一個Web服務「API喜歡」,但我不使用教義來堅持數據。我想要將數據反序列化到一個對象(帶有實體關聯)並且違反約束條件。 – guns17