0
私のプロジェクトでは、次のジャックソンマッパーを使用しています。ジャンクションからブール値を正しく逆シリアル化できない
org.codehaus.jackson jackson-mapper-asl 1.9.13
json文字列をオブジェクトに変換しようとすると、ブール値を正しくマップできないという問題があります。それは非常に特異な問題です。 私の属性名がで始まる場合は "、例えば"isFlag":true
です。ジャックソンはそれを読んでいません。属性名を"Flag":true
に変更すると、正しいオブジェクトが作成されます。
リファレンスJSON:
{"ticketNumber": "0970897760","chartPrepared": true,"isFlag": true}
リファレンスクラス:
class TestClass {
String ticketNumber;
boolean chartPrepared;
boolean isFlag;
public boolean isChartPrepared() {
return chartPrepared;
}
public void setChartPrepared(boolean chartPrepared) {
this.chartPrepared = chartPrepared;
}
public boolean isFlag() {
return isFlag;
}
public void setFlag(boolean isFlag) {
this.isFlag = isFlag;
}
public String getTicketNumber() {
return ticketNumber;
}
public void setTicketNumber(String ticketNumber) {
this.ticketNumber = ticketNumber;
}
}
}
機能:
TestClass obj = mapper.readValue(text, TestClass.class);
System.out.println(obj.getTicketNumber()+" "+obj.isChartPrepared()+" "+obj.isFlag());
実際の出力:
0970897760 true false
予想される出力:返信BusyAntため
0970897760 true true
変更 'isFlag'のあなたのJSONでto'flag'、またはあなたのメソッド' isFlag'をisIsFlag' 'への返信BusyAntため – BusyAnt
感謝を。明示的に@JsonProperty( "isFlag")をTestClassに追加することでこの問題が解決されました。 @JsonProperty( "isFlag") \t \t boolean isFlag; –