Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
                            Tags
                            
                        
                          
                          - json
 - workbench
 - MySQL
 - Linux_명령어정리
 - DML
 - 다이어그램
 - SQL
 - 배열
 - 이클립스
 - 자바
 - JavaScript
 - vb.net
 - Spring_에러정리
 - 아파치톰캣
 - Spring_오류정리
 - CSS
 - asp.net
 - HTML
 - git
 - spring
 - Linux
 - Git_명령어정리
 - 인덱스
 - 인스턴스
 - Git_정리
 - SQL_용어정리
 - github
 - 자바스크립트
 - java
 - jsp
 
                            Archives
                            
                        
                          
                          - Today
 
- Total
 
데브마우스
[JSON] Gson 라이브러리를 사용하며 Java에서 JSON 사용하는 방법 본문
Gson은 무엇인가요?
Gson은 구글에서 개발한 오픈소스 소프트웨어입니다. Gson을 사용하여 직렬화/비직렬화 라이브러리로 자바 객체를 JSON으로 변환합니다. 또한 반대로 JSON을 자바 객체로 변환할 수 있습니다. (출처: https://github.com/google/gson)
Gson을 어디서 다운로드 받나요?
Gson은 메이븐 레포지토리(https://mvnrepository.com/artifact/com.google.code.gson/gson)에서 다운로드 받을 수 있습니다. Gson을 사용하려면 2가지 방법이 있습니다. 의존성 라이브러리를 pom.xml에 추가하거나 jar파일을 다운로드하여 수동으로 추가할 수 있습니다.

jar 파일 추가 방법
jar 파일 추가 환경은 아래와 같습니다.
- Eclipse: 2023-09
 

프로젝트에서 마우스 오른쪽을 클릭한 후 [Build Path]를 클릭합니다.

[Classpath]를 클릭한 후 오른쪽의 [Add External JARs...]을 클릭합니다.

gson 라이브러리가 추가되었습니다. [Apply and Close]를 클릭합니다.
Gson 사용 방법 정리
Gson을 사용하기 위해서는 DTO 클래스와 임포트(import)가 필요합니다.
// Gson 클래스를 사용하기 위해 필요합니다.
import com.google.gson.Gson;
// TypeToken 클래스를 사용하기 위해 필요합니다.
import com.google.gson.reflect.TypeToken;
DTO Member 클래스입니다.
public class Member {
	private String name;
	private int age;
	private String email;
	public Member() {
		super();
	}
	
	public Member(String name, int age, String email) {
		super();
		this.name = name;
		this.age = age;
		this.email = email;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	@Override
	public String toString() {
		return "Member [name=" + name + ", age=" + age + ", email=" + email + "]";
	}	
}
Gson을 활용한 자바 코드입니다.
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class GsonPrac {
	public static void main(String[] args) {
		// 1. Object(Member DTO) -> JSON(String) 
		Member m = new Member("Hong", 10, "Hong@email.com");
		Gson gson = new Gson(); // import com.google.com.gson.Gson;이 없으면 작동하지 않습니다.
		String json = gson.toJson(m);
		System.out.println(json);
		
		// 2. JSON(String) -> Object(Member DTO) : JSON을 객체로 변환
		Member m1 = gson.fromJson(json, Member.class);
		System.out.println("JSON(String) -> Object(Member DTO) : " + m1);
		System.out.println(m1.getName() + "\t" + m1.getAge());
		
		// 3. Object(List<Member>) -> JSON(String) : [{}, {}...] 배열을 JSON으로 변환
		List<Member> list = new ArrayList<Member>();
		list.add(new Member("Hong", 10, "Hong@email.com"));
		list.add(new Member("Kim", 20, "Kim@email.com"));
		list.add(new Member("Lee", 30, "Lee@email.com"));
		
		String listJson = gson.toJson(list);
		System.out.println(listJson);
		
		// 4.JSOSN(String) -> Object(List<Member>) : JSON을 객체로 변환
		List<Member> list1 = gson.fromJson(listJson, new TypeToken<List<Member>>(){}.getType());
		for(Member mb : list1) {
			System.out.print(mb);
		}
	}
}
| 출발 데이터 형태 | 도착 데이터 형태 | 설명 | 
| Object(DTO) | JSON(String) | 객체를 JSON으로 변환합니다. | 
| JSON(String) | Object(DTO) | JSON을 객체로 변환합니다. | 
| Object(List<DTO>) | JSON(String) | 리스트 객체를 JSON 형태[{ }, { } .... ]로 변환합니다. | 
| List<JSON(String)> | Object(DTO) | 클래스_이름 [ key=value, key=value ... ]형태로 변환합니다. | 
'JSON' 카테고리의 다른 글
| [REST] REST API 개요 정리 (0) | 2024.02.10 | 
|---|---|
| [JSON] org.json 라이브러리를 사용하여 Java에서 JSON 사용하는 방법 (0) | 2024.01.30 | 
| [JSON] JSON 개요 정리 (0) | 2024.01.30 |