2012-10-01 4 views
17

ドクトリンコレクションのシリアル化されたコレクションをデシリアライズする際に問題があります。それとトピックについてのドキュメントを見つけることができませんでした。私はJMSSerializerで新しくなっています。私は逆シリアル化しようとすると:JMSSerializerデシリアライズコレクション

$collection = $serializer->deserialize($jsonData,'Doctrine\Common\Collections\ArrayCollection','json'); 

$コレクションが空である

私が代わりにクラス名をnullに設定すると、私は結果に連想配列を持っています。そのjsonを逆シリアル化するエレガントな方法はありますか?

編集: 申し訳ありません。ここにシリアライズされたコレクションです:

[{"id":88,"name":"Poland","created_at":"2012-09-28T11:59:06+0000"},{"id":90,"name":"Great Britain","created_at":"2012-09-28T11:59:06+0000"}] 
+0

シリアル化された 'ArrayCollection'のjsonを質問に貼り付けることができますか? –

答えて

43

ハハ!私が間違っていたものを見つけました:)メソッドを間違った型に逆直列化しました。すべきである:

$serializer->deserialize($jsonData, 'ArrayCollection<EntityName>', 'json'); 

そしてそれは私に実体の美しい配列を与えた。

+0

このソリューションはどこで見つかりましたか?実験によってのみ – tolgap

+2

となります。残念ながらドキュメントは見つかりませんでしたが、deserializeメソッドのように見えるのは、ここで定義されているのと同じ文字列をタイプ引数として取ることができます:[types](http://jmsyst.com/bundles/JMSSerializerBundle/master/reference/annotations#type) – mrMantir

+0

探していたソリューションを見つけることに感謝します! – Casey

関連する問題