Java와 Kotlin에서 객체를 JSON string으로 직렬화하거나 JSON string을 객체로 역직렬화할 경우, 표준 라이브러리인 org.json.JSONObject를 쓰거나 외부 라이브러리인 com.google.gson.Gson을 쓰는 경우가 일반적이다.
나는 보통 사용법이 간편한 Gson을 쓰지만 간혹 의존성 추가가 귀찮아서 JSONObject를 쓸 때가 있는데, 그럴 때마다 자꾸 쓰는 방법을 까먹어서 이번 기회에 한번 정리해 놓으려 한다.
data class Person(
val name: String,
val age: Int
)
{
"name":"sam",
"age":30
}
fun main(){
val sam = Person("sam", 30)
val jsonObject = JSONObject()
jsonObject.put("name", sam.name)
jsonObject.put("age", sam.age)
val jsonString = jsonObject.toString()
Log.d("TTT", jsonString) // 결과물 확인용
}
fun main(){
val sam = Person("sam", 30)
val gson = Gson()
val jsonString = gson.toJson(sam)
Log.d("TTT", jsonString) // 결과물 확인용
}
fun main(){
val jsonString = "{\"name\":\"sam\", \"age\":30}"
val jsonObject = JSONObject(jsonString)
val name = jsonObject.getString("name")
val age = jsonObject.getInt("age")
val sam = Person(name, age)
Log.d("TTT", sam.toString()) // 결과물 확인용
}
fun main(){
val jsonString = "{\"name\":\"sam\", \"age\":30}"
val gson = Gson()
val sam = gson.fromJson(jsonString, Person::class.java)
Log.d("TTT", sam.toString()) // 결과물 확인용
}