반응형
이거만 하면 통신할 준비 끝!
구글이 만든 라이브러리이다.
내가 아닌 외부에서 만든 라이브러리를
써드파티(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
메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9
반응형