반응형
Retrofit + RxJava + OKHTTP를 이용해서 Json 데이터를 가져오던 중 다음과 같은 에러가 발생했다.
onError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
해당 에러는 Json데이터를 파싱할 때 형식이 잘못되었을 경우에 발생하는 에러이다.
내가 받아오려는 데이터는 아래와 같이 처음부터 배열형식(Array)으로 받아오기 때문에 에러가 발생했다.
[
{
"id": 1,
"name": "Minsu",
"age": 25
},
{
"id": 2,
"name": "Parksuri",
"age": 25
},
{
"id": 3,
"name": "Jenni",
"age": 22
}
...
]
데이터를 추출하기 위한 클래스를 아래와 같이 만들고 사용할 때 List<GetList>로 사용하면 된다.
public class GetList {
@SerializedName("id")
@Expose
private int id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("age")
@Expose
private int age;
public int geId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
'소프트웨어 > 안드로이드[Java]' 카테고리의 다른 글
[Android] Java 타임스탬프 시간 변환 (0) | 2021.06.11 |
---|---|
[Android] Collapsing Toolbar Layout 텍스트 안나올 때 (0) | 2021.04.20 |
[Android] android.database.CursorIndexOutOfBoundsException (0) | 2021.04.06 |
[Android] BottomNavigationView Fragment 적용 (2) | 2021.04.02 |
[Android] BottomNavigationView 구현하기 (0) | 2021.04.01 |