반응형
안녕하세요. 훈츠 입니다. 모두 즐겁게 공부하면서 안드로이드 앱 학습하고 계신가요? 오늘은 Gson 클래스 객체를 Json 객체로 만들고, 다시 Json 객체를 Gson 객체로 만들수 있는 클래스를 설명 드려보고자 합니다. 물론 객체를 만들지 않고도 가능하지만 객체로 만들어 놓고 사용하면 조금더 손쉽게 적용할수 있지 않을까 하는 생각에 만들어 보았습니다. 저처럼 아직 Gson 객체를 Json 객체로 만드는게 익숙하지 않으시는 분들은 제가 설명드리는 부분과 함께 클래스 가져가셔서 해당하는 부분만 일부 변경해서 사용하셔도 괜찮을거 같습니다.
GsonConvert Class 를 만들어 봅니다.
Contact라는 data class를 type으로 예시를 들어 만들었습니다.
data class Contact(var name:String, var number:String)
class GsonConvert (var person:Contact = Contact("","")){
//variable define
var gson : Gson
var listType : TypeToken<MutableList<Contact>> = object : TypeToken<MutableList<Contact>>() {}
var js :String = ""
var gs = mutableListOf<Contact>()
companion object{
private var lastindex = 0 //lastindex
var contacts = mutableListOf<Contact>()
}
init {
gson = GsonBuilder().create() //gson객체 만들기
}
//Contact 객체 추가
fun put(contact : Contact) {
contacts.add(contact)
lastindex = contacts.lastIndex
}
//Contacts List 객체 돌려주기
fun get():MutableList<Contact>{
return contacts
}
//Json 객체 돌려주기
fun jsGet():String{
js = gson.toJson(contacts,listType.type)
return js
}
//Gson 객체 돌려주기
fun gsGet():MutableList<Contact> {
gs = gson.fromJson(js,listType.type)
return gs
}
//Contacts List lastIndex 값 돌려주기
fun lastIndex():Int{
lastindex = contacts.lastIndex
return lastindex
}
}
메인 에서 값을 확인 해 보겠습니다.
fun main(){
var gsonconv = GsonConvert() //gsonconv 객체 만들기
gsonconv.put(Contact("lkh","01")) //4개의 contact 객체 추가 하기
gsonconv.put(Contact("cjs","02"))
gsonconv.put(Contact("les","03"))
gsonconv.put(Contact("les","03"))
var contacts =gsonconv.get() //contacts 리스트 객체 받기
contacts.forEach({
println(it.toString()) //* 객체 내용 출력 해보기
})
}
Json 객체를 받아서 출력 해 보았습니다.
var js = gsonconv.jsGet() //json 객체 받기
println(js) // * 출력 해보기
Gson 객체를 받아서 출력 해 보았습니다.
var gs = gsonconv.gsGet()
println(gs)
Companion object 값으로 선언한 lastindex 값도 확인 해 보았습니다.
gsonconv.put(Contact("les","03"))
println(gsonconv.lastIndex())
이 GsonConvert 예제 를 이용해서, 내부 dataclass 나 type만 변경하면 얼마든지 응용이 가능합니다. 오늘도 즐거운 코딩 학습 되길 기대하며 오늘은 이만...다음에 또 뵙겠습니다.
소스코드
http://gofile.me/6AMKe/YfU0kcL5z
'안드로이드 프로그래밍[Kotiln Code] > Gson & Json' 카테고리의 다른 글
[kotlin] Gson & Json 이용 하여, arrayList값 저장 하기 (0) | 2020.02.03 |
---|