0

我已经用 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:http: //jmsyst.com/libs/serializer/master/reference/annotations

4

1 回答 1

0

我发现的唯一解决方案是使用项目(ArrayCollection 类型)字段创建单独的类。这是此类的 jms-serializer 定义:

FooBundle\Entity\Cart:
    exclusion_policy: ALL
    properties:
        items:
            expose: true
            type: ArrayCollection<int, FooBundle\Entity\CartItem>
于 2017-08-03T19:56:09.277 回答