Ich habe ein POJO, das ich als MultiValueMap formatieren muss. Diese MultiValueMap wird als Anforderung in einer POST-Methode verwendet, die die restTemplate-Klasse verwendet, und wird als contentType-Anwendung / x-www-form-urlencoded an meinen Webdienst weitergeleitet.
Gibt es irgendwelche Werkzeuge oder Hilfsmittel, die das POJO tun - & gt; MultiValueMap Konvertierung für mich?
Beispiel pojo:
%Vor%Nachdem MultiValueMap in contentType konvertiert wurde: application / x-www-form-urlencoded durch Aufrufen von POST auf restTemplate-Objekt:
%Vor%Das kannst du mit Reflektion und / oder Introspektion machen (ich erinnere mich nie an den richtigen Namen). Dies ist eine Variante der Serialisierung, daher sollten Sie in der Serialisierungsimplementierung nachsehen.
Eine weitere Option ist das Erstellen einer ähnlichen Schnittstelle.
%Vor%Und implementieren Sie es für die fraglichen Klassen.
Für Ihr pojo könnte es so aussehen:
%Vor%Wenn Sie es in dem Format senden möchten, das Sie in Ihrer Frage angegeben haben, möchten Sie vielleicht etwas tun, was DwB vorgeschlagen, aber ich denke, Sie finden es vielleicht einfacher zu konvertieren, wenn Sie einen eher objektorientierten Ansatz wie JSON verwenden Es gibt viele Bibliotheken, die zwischen POJO- & gt; JSON konvertiert werden können. Ein weiterer Vorteil ist, dass JSON speichert Zahlen / String / Booleans separat, daher ist es einfacher, zurück zu einem POJO zu konvertieren, während wenn Sie die Daten wie in Ihrem Beispiel senden müssen Sie alle String-Objekte wieder in welchen Typ sind sie z. id muss konvertiert werden String- & gt; int und aktiv konvertiert String- & gt; boolean.
In JSON sieht es vielleicht so aus:
%Vor%Natürlich könnten Sie etwas Ähnliches mit XML machen, aber ich mag diese einfache Lösung, wenn ich Daten einfach und alles in einer Zeile senden möchte. Die JSON-Bibliotheken werden besser und einige können dies durch Reflektion von Ihrem Objekt erzeugen.
Jedenfalls nur ein Vorschlag.
Tags und Links java spring spring-mvc