0

프로젝트에서 다음 잭슨 매퍼를 사용하고 있습니다. 내가 개체로 JSON 문자열을 변환하려고 할 때마다, 내가 제대로 부울 값을 매핑 할 수 없습니다임을잭슨을 통해 부울 값을 올바르게 역 직렬화 할 수 없습니다.

org.codehaus.jackson jackson-mapper-asl 1.9.13 

내 문제를 해결합니다. 그것의 아주 특이한 문제. 내 속성 이름이 "으로 시작하는 경우" 예 : "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 
,451,515,

예상 출력 : 회신 BusyAnt에 대한

0970897760 true true 
+0

변경'당신의 JSON에서 isFlag'의 to'flag', 또는 응답 BusyAnt에 대한'isIsFlag' – BusyAnt

+1

덕분에 당신의 방법을'isFlag'. 나는 명시 적으로 @JsonProperty ("isFlag)를 TestClass에 추가하여이 문제를 해결했다. @JsonProperty ("isFlag") \t \t 부울 isFlag; –

답변

1

감사합니다. 나는 더 나은 해결책을 찾아 냈다. 명시 적으로이 문제를 TestClass에있는 @JsonProperty ("isFlag)을 해결했다 추가.

@JsonProperty("isFlag") 
boolean isFlag;