반응형
Sharedprefence 를 싱글톤으로 만들어 가볍게 앱의 이곳 저곳에서 값을 저장하고 있었는데, 많이 사용하는 arrayList 값 저장하는법에 대해 몇일간 블로깅을 통해 알아낸 결과 Gson 과 Json을 이용한다면 가능하다는 것을 알게 되었습니다. 하지만 그렇게 친절? 한 블로그를 찾지 못했고, 사실 이부분은 제가 기본이 없어서 그렇습니다. ㅠㅠ 코틀린 사이트에서 검색해서 알았는데 설명은 자바로 이루어져 있었습니다.
Gson type을 Json type으로 변경하고 반대로 Json 을 Gson으로 변경하는 법을 순서대로 설명 드리겠습니다.
Gson Dependencies 에 라이브러리 추가
build.gradle(Module:app) 에서 직접 추가 하셔도 좋고, file -> Project structure -> Dependencies -> '+' -> gson 검색 후 apply 하셔도됩니다.
1 2
3
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
implementation 'com.google.code.gson:gson:2.8.6' //현재 최신버젼
|
cs |
Json으로 만들 data class 만들기
data클래스가 아닌 일반 클래스로 만드시려면, java처럼 getter와 setter를 만들어 주시면 됩니다.
1
2
3
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
data class Tcon(val name: String, val sms: String, val time: String)
|
cs |
Gson 객체 만들기
1
2
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
var gson = GsonBuilder().create()
|
cs |
저장 type 지정 (다른 type도 지정 가능)
1
2
3
4
5
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
var listType : TypeToken<MutableList<Tcon>> = object : TypeToken<MutableList<Tcon>>() {}
var setType : TypeToken<MutableSet<Tcon>> = object : TypeToken<MutableSet<Tcon>>() {}
var mapType : TypeToken<MutableMap<String,Tcon>> = object : TypeToken<MutableMap<String,Tcon>>() {}
|
cs |
gson data
1
2
3
4
5
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
private var g1 : MutableList<Tcon> = mutableListOf(
Tcon("hoons","가","1000"),
Tcon("sunny","나","2000"))
|
cs |
gson to json 객체 변환
1
2
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
var strContact1 = gson.toJson(g1,listType.type) //listType.type은 위에서 만든 type
|
cs |
sharedpreperence에 json 객체 저장하기
1
2
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
App.prefs.setV("1",strContact1) //("1" <-key값입니다., strContact1)
|
cs |
json to gson 객체 변환
1
2
3
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
val g11= App.prefs.getV("1")
var data1: MutableList<Tcon> = gson.fromJson(g11,listType.type)
|
cs |
예제 코드
https://github.com/rain2002kr/GsonToJsonWithPreference.git
'안드로이드 프로그래밍[Kotiln Code] > Gson & Json' 카테고리의 다른 글
[kotlin] Gson & Json 저장 할수 있는 class 만들어 보기 (0) | 2020.02.09 |
---|