Loading...

JAVA / / 2022. 1. 21. 16:48

자바 32강. GSON

반응형

이거만 하면 통신할 준비 끝!

 

https://mvnrepository.com/

구글이 만든 라이브러리이다.

내가 아닌 외부에서 만든 라이브러리를

써드파티(third party)라고 한다.

제삼자가 만든 라이브러리라는 의미이다.

 

gson 검색

 

버전이 아주 많다.

최신 버전은 안정화되지 않아서

그 아래 가장 많이 다운로드한 것을

다운로드할 것이다.

 

라이브러리에 추가해준다.

 

gson을 사용하면 우리가 json에게 전송하기 위해

toJson( ) 메서드를 만들어 일일이 리턴 값을 적어줬던 것을

단 한 줄로 끝낼 수 있다.

 

바로 Gson 클래스의 메서드 두 개만 기억하면 된다.

 

전송받은 json을 자바 오브젝트로 바꿀 때 : fromJson( )

전송하기 위해 json으로 바꿀 때 : toJson( )

 

toJson( )을 먼저 사용해보자.

package jsonex01;

import com.google.gson.Gson;

// Dto => Data Transper Object
// 통신을 위한 클래스
// 클래스 자체를 전송하는게 아닌 JSON으로 바꿔서 전송한다.
// 반대로 JSON 데이터를 받았을 때는 이 클래스로 받기
// JSON은 타입이 아닌 그냥 문자열 String, 그냥 표기법
class UserDto {
    private String username;
    private String password;

    public UserDto(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

public class GsonEx01 {
    public static void main(String[] args) {
        // JavaObject -> JSON으로 변경(데이터 전송 목적)
        UserDto userDto = new UserDto("ssar", "1234");
        Gson gson = new Gson(); // static 제공 아님
        // gson의 2가지 메서드만 기억
        // toJson(), fromJson()
        String jsonUserDto = gson.toJson(userDto);
        System.out.println(jsonUserDto);

    }
}

값이 아주 예쁘게 잘 나왔다.

 

fromJson( ) 메서드를 호출하니까

인수가 두개 필요하다

json자리에는 json 표기법으로 저장된 변수를 넣어주고,

이 json을 어떤 타입으로 바꿔줄지 넣어주면 된다.

package jsonex01;

import com.google.gson.Gson;

// Dto => Data Transper Object
// 통신을 위한 클래스
// 클래스 자체를 전송하는게 아닌 JSON으로 바꿔서 전송한다.
// 반대로 JSON 데이터를 받았을 때는 이 클래스로 받기
// JSON은 타입이 아닌 그냥 문자열 String, 그냥 표기법
class UserDto {
    private String username;
    private String password;

    public UserDto(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

public class GsonEx01 {
    public static void main(String[] args) {
        // JavaObject -> JSON으로 변경(데이터 전송 목적)
        UserDto userDto = new UserDto("ssar", "1234");
        Gson gson = new Gson(); // static 제공 아님
        // gson의 2가지 메서드만 기억! toJson(), fromJson()
        String jsonUserDto = gson.toJson(userDto);
        System.out.println(jsonUserDto);

        // Json -> JavaObject로 변경(데이터 다운로드 목적)
        UserDto javaUserDto = gson.fromJson(jsonUserDto, UserDto.class);
        System.out.println(javaUserDto.getPassword());
        System.out.println(javaUserDto.getUsername());

    }
}

 

 

 

 

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

 

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형