JSON 응답을 POJO 객체로 구문 분석하는 데 잭슨 주석을 사용하고 있습니다. POJO에서 부울 변수를 사용하여 JSON에서 "true"및 "false"값을 매핑했습니다. 하지만 갑자기 JSON에 "TRUE"및 "FALSE"값을 가져오고 이러한 값에 대한 구문 분석이 실패합니다. 누구든지이 변수가 너무 많은 곳에서 논리를 String to Boolean으로 변경하고 싶지 않은 곳에서 사용되므로 부울로 매핑하는 방법을 제안 할 수 있습니까?잭슨 JSON 구문 분석을 사용하여 TRUE 또는 FALSE 부울
답변
나는 이것이 당신이 원하는 것인지 확신하지 못합니다. 하지만 작동합니다.
Boolean param = Boolean.parseBoolean((String)yourValue);
테스트 된 코드는
public class program10 {
public static void main(String args[]) {
String yourValue = "TRUE"; // This is what you get from json.
Boolean param = Boolean.parseBoolean((String)yourValue);
if(param == true)
System.out.println("Value is true");
else
System.out.println("Value is false");
System.out.println(param);
}
}
내가 잭슨 파서 1.8.5을 사용하여 비슷한 문제에 직면한다. Java POJO에서 JSON으로 작업했지만 JSON에서 다시 Java POJO로 돌아갔습니다. 부울 변수가
private Boolean isMyVar;
로 선언 된 경우 자바 POJO에서 은 다음 잭슨
{..,
"myVar" : false,
..
}
으로 해당 JSON을 생산하는 (필자는 부울 변수 이름이 여기 잘못 알고 있지만, JAR 타사이다 당신이 그것을 바꿀 수 없다고 말하자.)
나는 Jackson 파서가 부울 값을 다루는 방식에 문제가 있다고 생각한다. JSON을 "myVar": false에서 "isMyVar": false로 변경했으며 JSON에서 Java POJO를 다시 만들면 괜찮습니다.
아직 버그인지 또는 해결 된 사람은 누구입니까?
나는이 문제를 1.9.2에서 아직도 치고있다. –
이것은 실제로 문제가 아닙니다. 이것은 기본적으로 BeanUtils의 작동 방식입니다. boolean
VARS 들어
잭슨은 JSON에 마샬링 때으로 변수 이름을 기대하고 다시 POJO에 마샬링하는 동일한 유도 이름 set
추가 어떻게 도출하는 세터 이름에서 is
을 제거한다.
그래서 boolean isFooTrue;
은 JSON에 마샬링 될 때 fooTrue
으로 끝나며 비 정렬 화하면 setIsFooTrue();
을 호출하려고 시도합니다. 이는 올바르지 않습니다.
private boolean isFoo;
public boolean isFoo() {
return isFoo;
}
public void setFoo(boolean isFoo) {
this.isFoo= isFoo;
}
:
하면 var에 이름을 그냥 foo
것처럼 당신은 아마 boolean isFoo;
에 대해 생성 된 코드는 기본적으로 is
을 무시 것을 알 수 있습니다, 당신은 IDE를 사용하고 당신은 당신의 게터/세터를 생성 한 경우 두 가지 옵션은 is
을 var 이름에서 제거하거나 is
을 설정자 이름에 추가하는 것입니다.
- 1. 잭슨 사용자 지정 부울 json 속성 deserialize
- 2. 부울 값이 true 또는 false 인 LINQ 쿼리
- 3. JSON 구문 분석을 사용하는 티타늄
- 4. 잭슨 JSON : 최상위 세그먼트 포함
- 5. 라디오 버튼, true 또는 false
- 6. ExtJS 스프링 보안 3.1 JSON true 또는 false 반환
- 7. PDO 매개 변수로 "true 또는 false"바인딩
- 8. JSON - 잭슨 배열처럼
- 9. GWT에서 안전한 JSON 구문 분석을 사용 하시겠습니까?
- 10. Perl에 내장 된 true/false 부울 값이 있습니까?
- 11. 부울 매개 변수의 레이블 "True"및 "False"변경
- 12. 데이터 필터에서 JQuery 토글 True 또는 False
- 13. 파이썬 robotparser는 반환하지 않습니다 true 또는 false
- 14. 0/1 또는 True/False 부울을 사용해야합니까?
- 15. SQL 열 true 또는 false -보기를 사용합니까?
- 16. SBJson 구문 분석 부울 값
- 17. 자바에서 json 데이터 구문 분석을 계속하십시오.
- 18. JSON 구문 분석을 사용하는 기본 jQuery
- 19. 스프링 mvc 잭슨 json
- 20. Mongoid 클래스 함수 값이 true 또는 false 인 문서
- 21. 잭슨 미니 json 객체 클래스
- 22. 부울 변수는 항상 false
- 23. 잭슨 serialise json 제외 형식
- 24. 역 직렬화 된 JSON 잭슨
- 25. 잭슨 JSON 루트 요소를 사용하여 비 직렬화
- 26. Rails 규칙에서 무엇이 선호됩니까? default : true 또는 default : false?
- 27. R을 사용하여 "TRUE FALSE"를 "FALSE"로 결합하는 방법?
- 28. 안드로이드 잭슨 JSON 파서 null 값
- 29. Siena/Play/GAE가 부울 필드를 잘못 구문 분석합니다. 0 = true
- 30. 컬 (Curl) 또는 XML 구문 분석을 사용해야합니까?
OMG - 아름답습니다! – HDave