2012-10-01 5 views
17

Ich habe ein Problem mit der Deserialisierung der serialisierten Sammlung von Doktrin-Sammlungen. Dokumente zu diesem Thema und zu allen Themen wurden nicht gefunden. Ich bin neu in JMSSerializer. Wenn ich versuche, deserialisieren mit:JMSSerializer-Deserialisierungssammlung

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

$ Sammlung ist leer

Wenn ich anstelle von Klassennamen auf null gesetzt ich auf Ergebnis Assoc Array. Gibt es eine elegante Möglichkeit, dieses JSer zu deserialisieren?

EDIT: Entschuldigung. Hier ist eine fortlaufende Sammlung:

[{"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

können Sie den JSON der serialisierten 'ArrayCollection' in die Frage einfügen? –

Antwort

43

Hah! Gefunden, was ich falsch gemacht habe :) Ich habe der Methode falsch Typ deserialize gegeben. Sollte sein:

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

und es gab mir eine schöne Reihe von Einheiten.

+0

Wo haben Sie diese Lösung gefunden? – tolgap

+2

nur durch Experiment. Keine Dokumente gefunden leider, aber sieht aus wie deserialize-Methode kann als Typ Argument die gleichen Zeichenfolgen wie hier zum Beispiel definiert: [types] (http://jmyst.com/bundles/JMSSerializerBundle/master/reference/annotations#type) – mrMantir

+0

nur was ich war auf der Suche nach. Danke für die Lösung! – Casey