Lesen JSON mit 2.0 Jersey (JAX-RS 2.0)

War ich mit Jersey 1.16 zu verbrauchen JSON, aber jetzt bin ich mit Schwierigkeiten zu verbrauchen JSON mit Jersey 2.0 (implementiert JAX-RS 2.0).

Habe ich eine JSON-Antwort, wie diese:

{
    "id": 105430,
    "version": 0,
    "cpf": "55443946447",
    "email": "[email protected]",
    "name": "Maria",
}

und die Methode, verbraucht es:

public static JSONObject get() {
   String url = "http://127.0.0.1:8080/core/api/person";
   URI uri = URI.create(url);

   final Client client = ClientBuilder.newClient();
   WebTarget webTarget = client.target(uri);            

   Response response = webTarget.request(MediaType.APPLICATION_JSON).get();

   if (response.getStatus() == 200) {      
      return response.readEntity(JSONObject.class);
   }
}

Ich auch versucht:

return webTarget.request(MediaType.APPLICATION_JSON).get(JSONObject.class);

Aber die jSONObject zurück ist null. Ich verstehe nicht, mein Fehler, denn die Antwort ist OK!

Können Sie mir sagen, mehr über das, was JSONObject? Was, wenn Sie ändern Sie den Rückgabetyp zu String? Weil, mit String, sollten Sie sich die Nutzlast. Wenn nicht, müssen Sie überprüfen Sie Ihre url. Wenn die url korrekt ist, dann haben Sie eine server-side-Problem. Wenn nun die Nutzlast der erwarteten JSON, dann ist dein problem ist nicht, dass ein MessageBodyReader unterstützt Ihre JSONObject.
JSONObject Klasse [Jettison-API] (jettison.codehaus.org). Es ist eine Sammlung von Schlüssel/Wert-Paare [Docs] (jettison.codehaus.org/apidocs/org/codehaus/jettison/json/...). Mit JSONObject, bekomme ich den Wert mit der get () - Methode.
Die URL ist korrekt, da der status ist " OK " (200 - Die Anfrage war erfolgreich).
Anerkannt wird, ist es-status 200. Aber über die Inhalte, bekam die erwartete JSON? Und der content-type ist application/json, richtig?
Ja, der Inhalt ist JSON. System.out.println("S: " + webTarget.request(MediaType.APPLICATION_JSON).get(String.class)); => OK System.out.println("J: " + webTarget.request(MediaType.APPLICATION_JSON).get(JSONObject.class).toString()); => Fehler.

InformationsquelleAutor rogerio_gentil | 2013-07-17

Schreibe einen Kommentar