Moments of growth

서버에서 특정 데이터가 안 받아져 올 때 본문

Android [오류 해결] 🔨

서버에서 특정 데이터가 안 받아져 올 때

뮤링이 2022. 6. 12. 16:04

 

문제)

노란색으로 표시한 4가지 항목이 포스트맨에서는 잘 뜨는데 Log를 찍어봤을 때 null 값이 들어오고 안 받아와졌다.

 

원인)

이렇게 img_link를 imgLink로 받아왔기 때문..

data class ExUser(
    val createdAt: String,
    val updatedAt: String,
    val imgLink: String?=null,
    val imgName: String?=null
)

해결방법)

이렇게 @SerializedName을 이용해서 바꿔준 이름을 사용할 수 있다.

data class ExUser(
    @SerializedName("created_at")
    val createdAt: String,
    @SerializedName("updated_at")
    val updatedAt: String,
    @SerializedName("img_link")
    val imgLink:  String? = null,
    @SerializedName("img_name")
    val imgName: String? = null
)

 

 

Gson?

Gson은 자바 객체와 JSON 간의 직렬화 및 역직렬화를 위한 구글에서 만든 오픈소스 자바 라이브러리이다.
Java Object를 Json 문자열로 변환할 수 있고, Json 문자열을 Java Object로 변환할 수 있다.

 

Gson @SerializedName?

public class Person {
    @SerializedName(value = "name")
    private String personName;

    @SerializedName(value = "bd")
    private String birthDate;
}
 
Person Class에는 personName, birthDate라는 2개의 field가 있다. @SerializedName annotation의 value는 객체를 직렬화 및 역직렬화 할 때 이름으로 사용된다. 위에 personName field는 JSON에서 name으로 표출된다. 
{
    "name":"vernon",
    "bd":"1998-02-18"
}

 

출처)

 

Gson @SerializedName

전 회사에서는 Gson을 사용하지 않아 존재만 알고 있었다. 하지만 현재 회사에서는 Gson을 사용한다. 업무나 나를 위해서 익숙해지는게 좋기 때문에 새로운 것이 발견될 때마다 기록하려고 한다.

cherrypick.co.kr

 

Comments