<구성한 retrofit 데이터형식입니다.>




public class Items {
@SerializedName("fstvlNm") //축제명
@Expose
private String fstvlNm;
@SerializedName("opar") //개최장소
@Expose
private String opar;
@SerializedName("fstvlStartDate") //축제시작일자
@Expose
private String fstvlStartDate;
@SerializedName("fstvlEndDate") //축제종료일자
@Expose
private String fstvlEndDate;
@SerializedName("fstvlCo") //축제내용
@Expose
private String fstvlCo;
@SerializedName("mnnst") //주관기관
@Expose
private String mnnst;
@SerializedName("auspcInstt") //주최기관
@Expose
private String auspcInstt;
@SerializedName("suprtInstt") //후원기관
@Expose
private String suprtInstt;
@SerializedName("phoneNumber") //전화번호
@Expose
private String phoneNumber;
@SerializedName("homepageUrl") //홈페이지주소
@Expose
private String homepageUrl;
@SerializedName("relateInfo") //관련정보
@Expose
private String relateInfo;
@SerializedName("rdnmadr") //소재지도로명주소
@Expose
private String rdnmadr;
@SerializedName("lnmadr") //소재지지번주소
@Expose
private String lnmadr;
@SerializedName("latitude") //위도
@Expose
private String latitude;
@SerializedName("longitude") //경도
@Expose
private String longitude;
@SerializedName("referenceDate") //데이터기준일자
@Expose
private String referenceDate;
@SerializedName("insttCode") //제공기관코드
@Expose
private String insttCode;
}
<밑의 링크는 json데이터 요청구조입니다.>
http://api.data.go.kr/openapi/tn_pubr_public_cltur_fstvl_api?serviceKey=flqNpXIymv5sUe63nK6VOIcPpe4Gjh3ms%2FuIsRg9nYrtrsoRAzNWiBCGzxczHzbgNa0PSOgF3ROfJZYDaqybfA%3D%3D&pageNo=0&numOfRows=100&type=json
-> retrofit의 onFailer 함수에서 Expected name at line 1 column 546 path $.response.body.items[0].insttCode 에러가 떠서 해당 줄의 postman에서 json 요청값을 보았더니 "fstvlEndDate" 였습니다. json 구조대로 나열했을 뿐인데 546번째 코드에 "fstvlEndDate"가 아닌 "insttCode"가 놓여있다고 에러를 해석을 하였습니다. 에러코드를 보고 제가 생각했던 에러 해결방법은 다음과 같았습니다.
1. "items의 구조가 "insttCode" 이후 반점이 찍여있는데 아이템이 더 있는것이라고 생각하고 items 클래스에 serialzedName을 하나 더 추가한다. 하나 더 추가한다면 빈칸에 대한 serialzedName을 어떻게 정의해야 하는가?" 였습니다.

2. 두번째는 "items 클래스에 json데이터를 보고 선언한 순서를 다른 것으로 바꿔본다. 그런데, 어떻게 바꿔야 에러 메시지에 맞게 구조가 변할까?" 였습니다.
만약 두가지 중 맞는것이 있다면 해결방법을 알려주시면 감사하겠습니다. 둘다 아니라면, 다른 해결책에 대해 알려주세요.