JAX-RS REST-service Rückgabe boolean as string
Ich bin mit JAX-RS zu produzieren, die einen RESTful-Dienst. Jedoch beim anfordern von JSON -, boolean-Werte zurück, wie eine Zeichenfolge in Anführungszeichen {"boolValue":"true"}
anstatt einen booleschen Wert {"boolValue":true}
.
Einem einfachen Objekt
@XmlRootElement
public class JaxBoolTest {
private boolean working;
public boolean isWorking() {
return working;
}
public void setWorking(boolean working) {
this.working = working;
}
}
Einem einfachen JAX-RS REST-Dienst
@Path("/jaxBoolTest")
public class JaxBoolTestResouce {
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public JaxBoolTest getJaxBoolTest() {
JaxBoolTest jbt = new JaxBoolTest();
jbt.setWorking(false);
return jbt;
}
}
Und das Ergebnis:
{"working":"false"}
Wie bekomme ich die boolean-Werte als Boolesche Werte anstatt strings?
Was die JAX-RS-Implementierung benutzt du?
Die JSON-serializer verwenden Sie? (Ich habe es vermeiden wollen...)
Sie haben eine sonderbare Ergebnis - Sie setzen die Arbeits-Eigenschaft auf true, aber seine Darstellung als (string) "false". Vorausgesetzt, dies ist kein Tippfehler auf Ihrer Seite, Ihre JSON-library möglicherweise nicht erkannt hat die Eigenschaft, da die besser ist benannt isWorking (im Gegensatz zu getWorking). Nur so ein Gedanke.
Ich weiß nicht, welche JSON-serializer verwende ich. Ich habe gerade heruntergeladen Jersey 1.17 enthalten, wo Jackson 1.9.2.
Jackson (jackson-jaxrs-1.9.2.jar) ich glaube
Die JSON-serializer verwenden Sie? (Ich habe es vermeiden wollen...)
Sie haben eine sonderbare Ergebnis - Sie setzen die Arbeits-Eigenschaft auf true, aber seine Darstellung als (string) "false". Vorausgesetzt, dies ist kein Tippfehler auf Ihrer Seite, Ihre JSON-library möglicherweise nicht erkannt hat die Eigenschaft, da die besser ist benannt isWorking (im Gegensatz zu getWorking). Nur so ein Gedanke.
Ich weiß nicht, welche JSON-serializer verwende ich. Ich habe gerade heruntergeladen Jersey 1.17 enthalten, wo Jackson 1.9.2.
Jackson (jackson-jaxrs-1.9.2.jar) ich glaube
InformationsquelleAutor Schlameel | 2013-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit jaxson (http://jackson.codehaus.org/) zu serialisieren, dies funktionierte out of the box:
Erzeugt diese Ausgabe:
Empfehle ich mit Jackson zum serialisieren JSON. Es funktioniert Super. Ich verwendet habe, über Bord werfen in der Vergangenheit, aber hatte viele Probleme mit ihm. Sie müssen wahrscheinlich die Konfiguration Ihres jax-rs-provider zu verwenden, jackson, da es nicht so Aussehen, wie es bereits verwenden.
Noch ein Tipp: es sind keine @XmlRootElement bei der Verwendung jackson, es sei denn, Sie wollen auch zu bieten, jax-b xml mit den gleichen Bohnen.
InformationsquelleAutor Kyle
In meinem Fall die JSON-Ausgabe war die Darstellung aller Eigenschaften als Zeichenketten (einschließlich primitive Datentypen). Das hinzufügen dieser zu meinem web.xml das problem wurde behoben.
InformationsquelleAutor Paulino III
abrufen von Benutzer vorhandene
Gesendet und zurückgegeben, {"result":true} (wenn vorhanden)
InformationsquelleAutor Musa