2017-07-27 87 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>