Ich bin eine JSON-Zeichenfolge von einer API mit einem RESTEasy-Client abrufen. Die JSON Nutzlast sieht ungefähr so aus:Spezifischen Knoten der JSON-Antwort in RESTEasy Client extrahieren
{
"foo1" : "",
"foo2" : "",
"_bar" : {
"items" : [
{ "id" : 1 , "name" : "foo", "foo" : "bar" },
{ "id" : 2 , "name" : "foo", "foo" : "bar" },
{ "id" : 3 , "name" : "foo", "foo" : "bar" },
{ "id" : 4 , "name" : "foo", "foo" : "bar" }
]
}
}
Jetzt würde ich nur die items
Knoten für die Objektzuordnung extrahieren möchten. Was ist der beste Weg, den JSON-Antworttext abzufangen und ihn so zu ändern, dass er items
als Root-Knoten hat?
Ich verwende die RESTEasy proxy framework für meine API-Methoden.
Der REST-Client-Code:
ResteasyWebTarget target = client.target("https://"+server);
target.request(MediaType.APPLICATION_JSON);
client.register(new ClientAuthHeaderRequestFilter(getAccessToken()));
MyProxyAPI api = target.proxy(MyProxyAPI.class);
MyDevice[] result = api.getMyDevice();
Resteasy Proxy-Interface:
public interface MyProxyAPI {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/device")
public MyDevice[] getMyDevices();
...
}
zum Objekt Javascript konvertieren und es als ein Objekt abzuzurufen. – SaviNuclear
Ist es wichtig, dass 'items' die Wurzel sind, oder nur, dass Sie keine anderen Elemente der Nachricht zuordnen möchten? Wenn Sie sich die RestEasy-Dokumente ansehen, verwenden Sie automatisches Marshalling/Unmarshalling für Java-Beans über einen JAXB-Provider. – dbreaux
@dbreaux Ja, ich möchte einfach keine anderen Elemente zuordnen. Siehe meine Bearbeitung des OP für einen vereinfachten Implementierungscode. Ich könnte natürlich einen Anbieter registrieren, um den Nachrichtentext zu ändern, aber ich frage mich, wie die Implementierung eines solchen Anbieters aussehen würde. –