본문 바로가기
Study/Java

Gson을 이용한 json을 객체에 담기

by 오늘만 사는 여자 2020. 11. 27.
728x90
반응형

JsonObject -> 객체 변환

Gson 라이브러리는 json으로 받은 데이터를 내가 만든 객체에 자동으로 set 해주는 기능을 제공한다. 먼저 간단한 JsonObject 형태의 json을 객체로 변환해보자.


public class Member {
	private String id;
	private String name;
	private int age;
	private String address;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	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 getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	@Override
	public String toString() {
		return "Member [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + "]";
	}
}

 

GsonTest.java

import com.google.gson.Gson;

public class GsonTest {
	public static void main(String[] args) {
		Gson gson = new Gson();
		String jsonString = "{'id':'jekalmin','name':'Min','age':26,'address':'Seoul'}";
		System.out.println(gson.fromJson(jsonString, Member.class));
	}
}

JsonArray -> List 변환

import java.util.Arrays; 
import java.util.List; 
import com.google.gson.Gson; 
import com.google.gson.reflect.TypeToken; 

public class GsonTest { 
	public static void main(String[] args) { 
		Gson gson = new Gson(); 
		String jsonString = "[{'id':'jekalmin','name':'Min','age':26,'address':'Seoul'},{'id':'park','name':'park','age':27,'address':'Seoul'},{'id':'kim','name':'kim','age':28,'address':'Incheon'}]";
		// 방법1 
		Member[] array = gson.fromJson(jsonString, Member[].class); 
		List<Member> list = Arrays.asList(array);
		
		// 방법2 
		List<Member> list2 = gson.fromJson(jsonString, new TypeToken<List<Member>>(){}.getType());

	}
}


출처: https://jekalmin.tistory.com/entry/Gson을-이용한-json을-객체에-담기 [jekalmin의 블로그]

728x90
반응형

댓글