[Kotlin] JSON To Kotlin Class를 사용하여 JSON에서 데이터 클래스 생성
16545 단어 IntelliJJSONAndroidStudioKotlin
소개
JSON To Kotlin Class는 Android Studio, IntelliJ IDEA에서 작동하는 플러그인입니다.
이 플러그인을 사용하면 JSON에서 데이터 클래스를 쉽게 생성할 수 있습니다.
JSON To Kotlin Class 설치
이번에는 IntelliJ IDEA로 동작을 확인해 나갈 것입니다.
다음 절차에 따라 JSON To Kotlin Class를 설치합니다.
이번에는 IntelliJ IDEA로 동작을 확인해 나갈 것입니다.
다음 절차에 따라 JSON To Kotlin Class를 설치합니다.
JSON 문자열에서 클래스 생성
JSON To Kotlin Class를 이용하면,
다음 단계를 통해 JSON 문자열에서 데이터 클래스를 생성할 수 있습니다.
다음과 같은 느낌으로 이번은 GitHub API의 GET /repos/:owner/:repo/contributors
취득할 수 있는 다음의 JSON을 붙여 넣어 보았습니다, 그 때문에 "Class Name"은 Contributor로 했습니다.
Generate를 선택하면 자동으로 다음과 같은 데이터 클래스가 생성됩니다.
네 잘 데이터 클래스가 출력되고 있네요.
Contributor.kt
data class Contributor(
val avatar_url: String,
val contributions: Int,
val events_url: String,
val followers_url: String,
val following_url: String,
val gists_url: String,
val gravatar_id: String,
val html_url: String,
val id: Int,
val login: String,
val node_id: String,
val organizations_url: String,
val received_events_url: String,
val repos_url: String,
val site_admin: Boolean,
val starred_url: String,
val subscriptions_url: String,
val type: String,
val url: String
)
데이터 클래스를 생성할 때 규칙 설정
JSON To Kotlin Class에서는 데이터 클래스를 생성할 때 규칙을 설정할 수 있습니다.
다음 절차에 따라 설정 화면을 열 수 있습니다.
다음과 같은 느낌으로 크게 나누어 Property,Annotation,Other,Extensions의 설정이 있는 것 같습니다.
아무튼 주로 사용하는 것은 Property의 곳이 된다고는 생각합니다.
예를 들어 'Property'->'Keyword'를 'Var'로 변경하면,
다음과 같이 속성이 Var로 선언된 데이터 클래스가 생성됩니다.
Contributor.kt(Var)
data class Contributor(
var avatar_url: String,
var contributions: Int,
var events_url: String,
var followers_url: String,
var following_url: String,
var gists_url: String,
var gravatar_id: String,
var html_url: String,
var id: Int,
var login: String,
var node_id: String,
var organizations_url: String,
var received_events_url: String,
var repos_url: String,
var site_admin: Boolean,
var starred_url: String,
var subscriptions_url: String,
var type: String,
var url: String
)
또한 'Property'-> 'Type'을 'Nullable'로 변경하면,
다음과 같이 속성이 NULL을 허용할 수 있도록 데이터 클래스가 생성됩니다.
Contributor.kt (Nullable)
data class Contributor(
val avatar_url: String?,
val contributions: Int?,
val events_url: String?,
val followers_url: String?,
val following_url: String?,
val gists_url: String?,
val gravatar_id: String?,
val html_url: String?,
val id: Int?,
val login: String?,
val node_id: String?,
val organizations_url: String?,
val received_events_url: String?,
val repos_url: String?,
val site_admin: Boolean?,
val starred_url: String?,
val subscriptions_url: String?,
val type: String?,
val url: String?
또한 "Property"-> "Default Value Strategy"를 "Init With Non-Null Default Value(Avoid Null)"로
변경하면 다음과 같이 초기화 값을 NULL 이외로 초기화해 주는 데이터 클래스를 생성할 수 있습니다.
Contriburt.kt (InitWithNonNullDefaultValue (AvoidNull)
data class Contributor(
val avatar_url: String = "",
val contributions: Int = 0,
val events_url: String = "",
val followers_url: String = "",
val following_url: String = "",
val gists_url: String = "",
val gravatar_id: String = "",
val html_url: String = "",
val id: Int = 0,
val login: String = "",
val node_id: String = "",
val organizations_url: String = "",
val received_events_url: String = "",
val repos_url: String = "",
val site_admin: Boolean = false,
val starred_url: String = "",
val subscriptions_url: String = "",
val type: String = "",
val url: String = ""
)
이런 느낌일 정도는 데이터 클래스를 생성할 때의 룰을 설정할 수 있는 것 같습니다.
결론
참고
제목
간략한 설명
JsonToKotlinClass - GitHub
GitHub에 옵션 설정의 상세가 기재되어 있으므로, 자세한 설정이 하고 싶은 경우는 여기를 열람한다.
JsonToKotlinClass(JsonToKotlinClass) Plugins - JetBrains
플러그인 설명 페이지입니다.
Reference
이 문제에 관하여([Kotlin] JSON To Kotlin Class를 사용하여 JSON에서 데이터 클래스 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kaleidot725/items/5130de794d892303f0ad텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)