Symfony - Deserialize json zu einem Array von Entitäten

7

Ich habe ein Json-Objekt, das ich erhalten habe, indem ich einen get-API-Aufruf gemacht habe. Ich mache diesen Aufruf, um eine Liste von Objekten zu erhalten. Es ist eine Liste von Post ... Also ich habe eine Reihe von Post-Objekten.

Hier die Ausgabe:

%Vor%

Ich möchte den Datenteil deserialisieren ... Das Problem ist, dass der Serializer in Symfony mir einen Fehler gibt ...

Der Fehler, den ich habe:

%Vor%

Wie ich deserialize:

%Vor%

Wie kann ich das Daten-Array deserialze ... Um ein Array von Posts zu haben. Ich möchte meiner Ansicht .twig ein Array geben Poste ... ich habe den Typ genau beim Deserialisieren gemacht ... also ich kann nicht finden was das Problem ist ...

Danke.

    
manonthemoon 14.04.2014, 03:38
quelle

4 Antworten

4

Der Fehler ist ziemlich klar. Ihre Zeichenfolge stimmt mit keiner vorhandenen Klasse überein.

Das Beispiel in der offiziellen Dokumentation sagt:

%Vor%

In Ihrem Fall sollte es eher wie folgt aussehen:

%Vor%

Aktualisierung:

Ok dann.

Zunächst scheint Ihre json-Datei nicht gültig zu sein (verwenden Sie Ссылка , um sie zu testen). Sei vorsichtig damit.

Zweitens müssen Sie Ihren json als Array mit

holen %Vor%

und dann können Sie mit

auf jedes 'Daten' Array zugreifen %Vor%     
Einenlum 14.04.2014, 05:39
quelle
16

Ich denke, die beste Lösung ist hier, eine neue PosteResponse-Klasse wie diese zu erstellen:

%Vor%

und Deserialisieren Sie Ihre Antwort auf diese Klasse:

%Vor%

Das wird den Trick machen, und es erfordert nicht, dass Sie Ihren json manuell dekodieren und codieren, was meiner Meinung nach riddiculous ist.

    
Mikz 05.05.2015 11:42
quelle
12

Eine weniger als ideale Lösung, die ich fand, bestand darin, zuerst die json-Daten am Knoten, der das Datenfeld darstellt, zu dekodieren und dann zu codieren. Zum Beispiel in deinem Fall:

%Vor%

Es muss eine bessere Lösung als diese geben, aber das scheint eleganter als die obige Lösung der Deserialisierung von json.

    
Malachi 24.06.2014 08:04
quelle
1

Seit Symfony Serializer Component 2.8 zum Deserialisieren eines Array von Objekten:

%Vor%

Ссылка

    
arexD 30.01.2018 23:39
quelle