반응형
Json String (List) 을 Data Class 로 변환 (GSON)
이전 글에서 휴일 정보를 Json 으로 가져왔습니다.
참고
https://date.nager.at/api/v2/publicholidays/2023/KR
위의 호출 결과를 Data Class 로 매핑할 경우 아래와 같은 data class 로 만들 수 있습니다.
data class PublicHolidays(
@SerializedName("date") val date: Date,
@SerializedName("localName") val dateName: String,
@SerializedName("name") val engName: String,
@SerializedName("countryCode") val locale: String,
@SerializedName("fixed") val fixed: Boolean,
@SerializedName("global") val global: Boolean,
@SerializedName("counties") val counties: String?,
@SerializedName("launchYear") val launchYear: String?,
@SerializedName("type") val type: String
)
Json String 을 직접 받아서 처리할 때
단건일 경우
{
"date":"2023-01-01",
"localName":"새해",
"name":"New Year's Day",
"countryCode":"KR",
"fixed":true,
"global":true,
"counties":null,
"launchYear":null,
"type":"Public"
}
var jsonString = "" // 위의 json 문자열
val publicHoliday = Gson().fromJson(jsonString, PublicHolidays::class.java)
여러 건(List) 일 경우
[
{
"date":"2023-01-01",
"localName":"새해",
"name":"New Year's Day",
"countryCode":"KR",
"fixed":true,
"global":true,
"counties":null,
"launchYear":null,
"type":"Public"
},
{
"date":"2023-01-21",
"localName":"설날",
"name":"Lunar New Year",
"countryCode":"KR",
"fixed":false,
"global":true,
"counties":null,
"launchYear":null,
"type":"Public"
},
{
"date":"2023-01-23",
"localName":"설날",
"name":"Lunar New Year",
"countryCode":"KR",
"fixed":false,
"global":true,
"counties":null,
"launchYear":null,
"type":"Public"
},
{
"date":"2023-01-24",
"localName":"설날",
"name":"Lunar New Year",
"countryCode":"KR",
"fixed":false,
"global":true,
"counties":null,
"launchYear":null,
"type":"Public"
},
{
"date":"2023-03-01",
"localName":"3·1절",
"name":"Independence Movement Day",
"countryCode":"KR",
"fixed":true,
"global":true,
"counties":null,
"launchYear":null,
"type":"Public"
}
]
var jsonString = "" // 위의 json 문자열
val publicHolidays: List<PublicHolidays> = GsonBuilder()
.create()
.fromJson(jsonString, Array<PublicHolidays>::class.java)
.toList()
728x90
반응형
'Android' 카테고리의 다른 글
[Kotlin] SQLiteDatabase 기본적인 사용 방법 (0) | 2023.08.10 |
---|---|
[Kotlin] Android Camera 사용하기 (0) | 2023.08.04 |
[Kotlin] HttpUrlConnection 사용하여 api 호출하기 (0) | 2023.08.02 |
[Kotlin] svg, png 추가하고 사용하기 (0) | 2023.08.01 |
[Kotlin] Class 생성자 (0) | 2023.08.01 |
댓글