Ich schreibe einen JSON-Client für einen Server, der Boolean Werte als "0" und "1" zurückgibt. Ich erhalte derzeit die folgende Ausnahme, wenn ich versuche, meine Json Client auszuführen:Wie kann ich einen booleschen Wert aus FasterXML Jackson als Int serialisieren/deserialisieren?
HttpMessageNotReadableException: Could not read JSON: Can not construct instance of java.lang.Boolean from String value '0': only "true" or "false" recognized
So wie kann ich Setup FasterXML \ Jackson richtig wie etwas zu analysieren:
{
"SomeServerType" : {
"ID" : "12345",
"ThisIsABoolean" : "0",
"ThisIsABooleanToo" : "1"
}
}
Probe Pojo suchen:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({"someServerType"})
public class myPojo
{
@JsonProperty("someServerType")
SomeServerType someServerType;
@JsonProperty("someServerType")
public SomeServerType getSomeServerType() { return someServerType; }
@JsonProperty("someServertype")
public void setSomeServerType(SomeServerType type)
{ someServerType = type; }
}
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({"someServerType"})
public class SomeServerType
{
@JsonProperty("ID")
Integer ID;
@JsonProperty("ThisIsABoolean")
Boolean bool;
@JsonProperty("ThisIsABooleanToo")
Boolean boolToo;
@JsonProperty("ID")
public Integer getID() { return ID; }
@JsonProperty("ID")
public void setID(Integer id)
{ ID = id; }
@JsonProperty("ThisIsABoolean")
public Boolean getThisIsABoolean() { return bool; }
@JsonProperty("ThisIsABoolean")
public void setThisIsABoolean(Boolean b) { bool = b; }
@JsonProperty("ThisIsABooleanToo")
public Boolean getThisIsABooleanToo() { return boolToo; }
@JsonProperty("ThisIsABooleanToo")
public void setThisIsABooleanToo(Boolean b) { boolToo = b; }
}
Rast Client Line
Anmerkung 1: Dies wird Frühling mit 3,2
Anmerkung 2: toJSONString() - ist eine Hilfsmethode, die Jackson verwendet meine Parameter zu serialisiert Objekt
Hinweis 3: die Ausnahme geschieht auf Lesen IN das Ergebnis Objekt
DocInfoResponse result = restTemplate.getForObject(docInfoURI.toString()
+ "/?input={input}",
DocInfoResponse.class,
toJSONString(params));
Bitte geben Sie den relevanten Code Ihres Kunden an. – Alfabravo
Sie können Getter-Methoden für jene Werte definieren, die etwas zurückgeben wie 'return" 1 ".equals (stringRepresentation);'. – Titus