Notice
Recent Posts
Recent Comments
Link
투케이2K
234. (kotlin/코틀린) [GSON] SerializedName 사용해 모델 클래스 JsonObject , JsonArray 생성 본문
Kotlin
234. (kotlin/코틀린) [GSON] SerializedName 사용해 모델 클래스 JsonObject , JsonArray 생성
투케이2K 2023. 3. 15. 21:53[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -------------------------------------
// [호출 소스 코드]
// -------------------------------------
try {
// [JSON 생성에 필요한 데이터 선언]
var note = Note("twok.blog")
// [JSON 생성에 필요한 데이터 선언]
var items = ArrayList<Item>()
items.add(Item("Java", "Android"))
items.add(Item("Swift", "Xcode"))
// [M_Person 클래스 생성 실시]
var m_person = M_Person("투케이", 29, note, items)
// [GSON 사용해 Object to Json 변환 실시]
var jsonString = Gson().toJson(m_person)
// [로그 출력 실시]
S_Log.ltd("================================================")
S_Log.cnt("[" + ACTIVITY_NAME + " >> " + C_Util.getNowMethod(1) + " :: 로그 출력]")
S_Log.cnt("[jsonString :: "+jsonString+"]")
S_Log.lbd("================================================")
}
catch (e: Exception) {
e.printStackTrace()
}
// -------------------------------------
// [DATA CLASS 소스 코드]
// -------------------------------------
package com.example.kotlinproject
import com.google.gson.annotations.SerializedName
data class M_Person(
/**
* // --------------------------------------------------------------------------------------
* TODO [클래스 설명]
* // --------------------------------------------------------------------------------------
* 1. GSON 모델 클래스
* // --------------------------------------------------------------------------------------
* 2. @SerializedName : JSON 객체 생성 시 표시될 key name
* // --------------------------------------------------------------------------------------
* 3. @Expose : 데이터가 null 일 경우 json 생성 시 제외 설정
* // --------------------------------------------------------------------------------------
* 4. build.gradle 설정 :
*
* implementation 'com.google.code.gson:gson:2.8.6'
* // --------------------------------------------------------------------------------------
* */
/**
* // --------------------------------------------------------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // --------------------------------------------------------------------------------------
* // [SEARCH FAST] :
* // --------------------------------------------------------------------------------------
* */
// -----------------------------------------------------------------------------------------
// TODO [JSON KEY DATA]
// -----------------------------------------------------------------------------------------
// [JSON KEY]
@SerializedName("key_name") var name: String,
// -------------------------------------------
// [JSON KEY]
@SerializedName("key_age") var age: Int,
// -------------------------------------------
// [JSON KEY]
@SerializedName("key_note") var note: Note,
// -------------------------------------------
// [JSON KEY]
@SerializedName("key_item") var items: ArrayList<Item>
// -------------------------------------------
) // TODO [클래스 종료]
// -----------------------------------------------------------------------------------------
// [JSON OBJECT]
data class Note (
@SerializedName("key_blog") var blog : String
) // TODO [클래스 종료]
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// [JSON ARRAY]
data class Item (
@SerializedName("key_lang") var lang : String,
@SerializedName("key_tool") var tool : String
) // TODO [클래스 종료]
// -----------------------------------------------------------------------------------------
[결과 출력]
D///===========//: ================================================
I/: [A_Intro >> onCreate :: 로그 출력]
I/: [jsonString :: {"key_age":29,"key_item":[{"key_lang":"Java","key_tool":"Android"},{"key_lang":"Swift","key_tool":"Xcode"}],"key_name":"투케이","key_note":{"key_blog":"twok.blog"}}]
D///===========//: ================================================
반응형
'Kotlin' 카테고리의 다른 글
Comments