JMS 序列化程序反序列化对象的 ArrayCollection
JMS Serializer deserialize ArrayCollection of 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 with Objects 并且所有的键都被保留了下来。也许有人知道为什么第一种方法不起作用?
Jms 序列化程序有可能反序列化到 ArrayCOllection f 对象部分 @Type 此处:http://jmsyst.com/libs/serializer/master/reference/annotations
我找到的唯一解决方案是使用项目(ArrayCollection 类型)字段创建单独的 class。这是 class:
的 jms-serializer 定义
FooBundle\Entity\Cart:
exclusion_policy: ALL
properties:
items:
expose: true
type: ArrayCollection<int, FooBundle\Entity\CartItem>
我已经用对象序列化了 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 with Objects 并且所有的键都被保留了下来。也许有人知道为什么第一种方法不起作用?
Jms 序列化程序有可能反序列化到 ArrayCOllection f 对象部分 @Type 此处:http://jmsyst.com/libs/serializer/master/reference/annotations
我找到的唯一解决方案是使用项目(ArrayCollection 类型)字段创建单独的 class。这是 class:
的 jms-serializer 定义FooBundle\Entity\Cart:
exclusion_policy: ALL
properties:
items:
expose: true
type: ArrayCollection<int, FooBundle\Entity\CartItem>