반응형
공공데이터포털 api를 호출하는 공부를 하다가 또(오)류를 만났다.
오류의 내용을 보면
java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault, parameter <this>
대충 어떤 메서드의 값이 null이라는 오류 같았는데
httplogginginterceptor에서는 api 결과가 잘 나왔었다...
아무튼 필자가 오류를 해결한 방법은
필자는 api를 받아올 data class에다가 @SerializedName을 써서 api에서 받아올 필드를 정의해 줬었는데
data class Body(
@SerializedName("fineDustItem") val fineDustItems: List<FineDustItem>,
@SerializedName("numOfRows") val numOfRows: Int,
@SerializedName("pageNo") val pageNo: Int,
@SerializedName("totalCount") val totalCount: Int
)
여기서 fineDustItems의 필드이름을 잘못 적어서 이 오류가 난 것이다;;
fineDustItem이 아닌 Items로 필드명을 변경해주었다.
수정 후:
data class Body(
@SerializedName("items") val fineDustItems: List<FineDustItem>,
@SerializedName("numOfRows") val numOfRows: Int,
@SerializedName("pageNo") val pageNo: Int,
@SerializedName("totalCount") val totalCount: Int
)
앞으로 json의 필드명을 확실히 보고 필드명을 쓰도록 하자...
728x90
반응형