retrofit2를 이용한 restfulAPI 호출시 Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $ 에러...

조회수 6693회

현재 안드로이드스튜디오로 retrofit2 라이브러리를 사용해 통신을 하려하고있습니다.

서버에서는 restfulAPI로 사용하고있으며 json타입으로 response를 해주는 상황입니다.

앱에서 받아오려하니까 Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $ 이런식으로 에러가 나면서 못가져오는데 현재 배열형태로 2개이상 가져오려할때만 이렇게 문제가 발생하는군요.. (한개는 잘받아옵니다)

받는 데이터 형식을 제대로 못한거같은데..어떻게 해야될지 잘 모르겠습니다. 검색을 해봐도 이해가 잘안되는데 도움 꼭좀 부탁드립니다.

아래는 단일 데이터 타입 부분입니다.

@JsonIgnoreProperties(ignoreUnknown=true)
public class ResultsVersion {

    private String file_name;
    private String version;

    public String getFile_name() {
        return file_name;
    }

    public void setFile_name(String file_name) {
        this.file_name = file_name;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }
}

아래는 2개이상 배열 데이터 타입 부분입니다.

public class ResultsVersionList {

    private ResultsVersion[] resultsVersions;

    public ResultsVersion[] getResultsVersions() {
        return resultsVersions;
    }

}

아래는 restfulAPI 주소를 관리하는 부분 입니다.

@Headers("Content-Type: application/json")
    @GET(Constant.URL_CURRENT_FIRMWARE_VERSION)
    Call<ResultsVersionList> getCurrentFirmwareVersionList();

아래는 서버에서 보내주는 json 데이터입니다.

[
    {
        "file_name": "app5910.apk",
        "version": "5.9.10"
    },
    {
        "file_name": "app533.apk",
        "version": "5.3.3"
    },
    {
        "file_name": "app532.apk",
        "version": "5.3.2"
    },
    {
        "file_name": "app5101.apk",
        "version": "5.10.1"
    }
]

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)