我已经使用Objects序列化了ArrayCollection,所有内容都使用jms / serializer-bundle序列化为json。
当我想用密钥反序列化我的集合时(这很重要):
deserialize($data, 'ArrayCollection<int, FooBundle\Entity\Item>', 'json');
我得到阵列。但是当我使用结果创建新的ArrayCollection时:
new ArrayCollection(deserialize($data, 'ArrayCollection<int, FooBundle\Entity\Item>', 'json'));
一切都很好,我得到了带对象的ArrayCollection,并保留了所有键。也许有人知道为什么第一种方法不起作用?
Jms序列化程序可以反序列化为ArrayCOllection f Objects部分@Type here:http://jmsyst.com/libs/serializer/master/reference/annotations
答案 0 :(得分:1)
我找到的唯一解决方案是创建具有项目(ArrayCollection类型)字段的单独类。以下是此类的jms-serializer定义:
FooBundle\Entity\Cart:
exclusion_policy: ALL
properties:
items:
expose: true
type: ArrayCollection<int, FooBundle\Entity\CartItem>