2017-07-27 90 views
0

我已经序列化ArrayCollection与对象,一切都被序列化为JSON与JMS /序列化程序包。JMS序列化器反序列化对象的ArrayCollection

当我想反序列化我的收藏与键(这很重要):

deserialize($data, 'ArrayCollection<int, FooBundle\Entity\Item>', 'json'); 

我得到阵列。但是,当我做与结果新的ArrayCollection:

new ArrayCollection(deserialize($data, 'ArrayCollection<int, FooBundle\Entity\Item>', 'json')); 

一切都很好,我得到的ArrayCollection使用对象和所有按键被保留。也许有人知道为什么第一种方法不起作用?

的Jms串行具有可能性反序列化为的ArrayCollection˚F对象部分@Type这里:http://jmsyst.com/libs/serializer/master/reference/annotations

回答

0

只有解决方案,我发现了创建具有项单独的类(的ArrayCollection类型)字段。这里是此类的jms-serializer定义:

FooBundle\Entity\Cart: 
    exclusion_policy: ALL 
    properties: 
     items: 
      expose: true 
      type: ArrayCollection<int, FooBundle\Entity\CartItem>