Ich habe die folgende Controller-Methode:
%Vor% Also versuche ich im Grunde, eine Set<>
von Exercise
-Entitäten für eine bestimmte Session
verfügbar zu machen. Wenn das Entity der Übungen leer ist, bekomme ich eine JSON-Darstellung wie folgt:
Im Grunde gibt es also keine eingebettete Entität, während etwas wie das Folgende bevorzugt wäre:
%Vor%irgendeine Idee, wie man das durchsetzt?
Das Problem hier ist, dass es ohne zusätzlichen Aufwand nicht möglich ist herauszufinden, dass die leere Sammlung eine Sammlung für Exercise
ist. Spring HATEOAS hat allerdings eine Helferklasse, um das zu umgehen:
Mit EmbeddedWrapper
können Sie Objekte, die zu Resource
oder Resources
hinzugefügt werden sollen, explizit als eingebettet markieren und möglicherweise sogar manuell die Rel definieren, unter denen sie angezeigt werden sollen. Wie Sie oben sehen können, erlaubt Ihnen der Helfer auch, eine leere Sammlung eines gegebenen Typs zur _embedded
-Klausel hinzuzufügen.
Spring verwendet standardmäßig den Jackson-Parser zum Serialisieren / Deserialisieren von json. Gemäß Ссылка hat Jackson eine Funktion namens WRITE_EMPTY_JSON_ARRAYS , die standardmäßig aktiviert ist. Vielleicht ist WRITE_EMPTY_JSON_ARRAYS in Ihrer Konfiguration auf false
gesetzt. Bitte überprüfen Sie Ihre Nachrichtenkonverter Konfiguration.
Tags und Links spring spring-hateoas