홈>
클래스 카드와 qrCode에 두 개의 필드가 있습니다 :
public class User{
@SerializedName("card")
private String card;
@SerializedName("qrCode")
private boolean qrCode
...
}
이 객체를 직렬화하여 요청합니다. 그러나 백엔드에는 이러한 필드가 배포 전까지 존재하지 않습니다. 이전 값은 문자열이나 부울이 아닌 객체였습니다.
그 때문에 내 응답에서이 오류가 발생합니다 :
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1
요청에서이 필드를 선택적으로 만들 수있는 방법이 있습니까?
응답은이 JSON입니다.
{"success":true,"msg":"founded","data":{..."card":{"success":false,"msg":"Not found","data":null}}}
-
답변 # 1
-
답변 # 2
매개 변수에 문제가 없습니다. 귀하의 답변에 문제가 있습니다.
JSONObject
를받는 데 문제가있을 수 있습니다 응답에서와 같이 해당 매개 변수를string
로 캐스팅합니다. .
관련 자료
- 선택적 필드가있는 Ansible selectattr 및 맵
- sql - 선택적 필드에 대해 null이 아닌 처리
- 객체 생성 중 날짜 필드를 null로 설정 한 후 생성자가 정의되지 않음 오류
- php - WooCommerce 내 계정에서 필드를 선택 사항으로 설정 주소 수정
- javascript - 서블릿에서 "esponseaddHeader ("Access-Control-Allow-Origin ","* ");"를 설정 한 후에도 CORS 요청이 실패
- angular - rxjs - (선택적) 요청에 대해 (최대) 기간을 정의하는 방법은 무엇입니까?
- http - 잘못된 상태 - 컨텐츠 유형이 "application/json"인 요청의 본문 필드를 설정할 수 없습니다
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- vue.js - axios를 사용하여 서버에 이미지를 업로드하는 방법
- python - 문자열에서 특정 문자 제거
JSON object
를 변환하는 커스텀 디시리얼라이저를 구현해야합니다String
로 :아래와 같이 사용할 수 있습니다 :
사용 예 :
인쇄 :
boolean qrCode
에 대해 할 수있는 것과 동일 .JSON object
를 변환하는 사용자 정의 deserialiser를 작성해야합니다boolean
로@JsonAdapter
를 사용하여 등록하십시오 주석.