제이슨의 개발이야기

Gson 라이브러리는 무엇일까? 간단한 JSON 형 변환JSON-> Data Model , Model->JSON 본문

컴퓨터과학

Gson 라이브러리는 무엇일까? 간단한 JSON 형 변환JSON-> Data Model , Model->JSON

제이쓰은 2021. 8. 11. 14:29
728x90
반응형

안녕하세요! 오늘은 Gson에 대해서 공부해보려고 합니다!

 

Gson이란 무엇인가??

 

Gson은 

Gson is a Java library that can be used to convert Java Objects into their JSON representation.

(Gson은 Java 객체를 JSON 표현으로 변환하는 데 사용할 수 있는 Java 라이브러리 입니다.)

단순히 Java 객체를 JSON으로 변환하는 거 뿐만 아니라 JSON에서 자바객체로도 쉽게 변환 할 수 있습니다!!

 

보통 Retrofit 이라든가 등등 을 통해서  Http 통신으로 데이터를 주고 받으면 JSON 이란 형식으로 데이터를 받거나 보냅니다! 

 

만약 서버를 통해 새로운 데이터를 JSON으로 받게 되면 저희는 일일이 

 

받은 JSON 데이터를 Model 객체로 매핑시켜야 되는 번거로움이 있습니다

 

이러한 번거로움을 해결하기 위한 라이브러리가 바로 Gson 라이브러리입니다! 

 

먼저 JSON 데이터를 Model 객체로 바꾸는 부분입니다

 

fun main(){
    var json = "{'age' :20 , 'name' : 'jjy'}"


    var gson = GsonBuilder().create()

    var student = gson.fromJson<Student>(json , Student::class.java)

    println(student.age)
    println(student.name)
}

 

위 에 코드에서 생략됬지만 JSON 형의 데이터 를 String 으로 변환 후 gson.fromJson() 메소드를 통해 JSON 데이터를 

 

Model 객체로 변환 시키면 쉽게 Model 객체를 얻을 수 있습니다! 

 

 

그럼 반대로 

Model 객체를 JSON 형으로 바꾼다면

 

fun main(){


 var student = Student(20,"jjy")


    var gson  = GsonBuilder().create()

    var json : String = gson.toJson(student)

    println(json)
}

 

 

먼저 student 객체를 만든 다음

 toJson 메소드를 통해 JSON 형태의 String 을 간단하게 얻을 수 있습니다!

 

이런 식으로 Gson 을 통해서 개발의 속도를 증가 시킬 뿐만 아니라 직접 매핑 해 줄 필요가 없어서 코드가 간결해지고 

가독성이 높아지는 장점이 있습니다! 

 

 Gson은 자바 라이브러리 이지만 코틀린 역시 사용 가능 합니다! 

 

 

혹시 Student Data Model 클래스 코드가 궁금하실 까봐 밑에 코드 남깁니다!

 

class Student(
        var age :Int,
        var name :String
) {
}

 

728x90
반응형