Hello I just had the same problem today and finally found how to deal with this non issue,
for each properties in an object you want to deserialize, the bundle wants to know which type you expect to have after the conversion. So you must use the annotation\type provided by the bundle in your Entity class and annote each properties: http://jmsyst.com/libs/serializer/master/reference/annotations#type
BE CAREFUL: Paste is evil! the use statement in the reference example is use JMS\Serializer\Annotation\Type;
but should be the real path to the serializer use JMS\SerializerBundle\Annotation\Type;
an exemple from my code :
use JMS\SerializerBundle\Annotation\Type;
/**
* @ORM\Entity
* @ORM\Table(name="ecro_form")
*/
class Form {
/**
* @ORM\ManyToOne(targetEntity="eCRO\Bundle\UserBundle\Entity\User", inversedBy="forms")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* @Type("eCRO\Bundle\UserBundle\Entity\User")
*/
protected $user; // inherits from FOSUser
Use annotations on the FOSUser abstract class (location: vendor\FOS\UserBundle\Model\User.php) so that the serializer know how to do its work.
hope it will help!