본문 바로가기

Java/공부공부

[Java] Gson / JSON

 

* Gson 

Java객체를 JSON으로, JSON을 Java객체로 변환할 수 있도록 도와주는 오픈소스 라이브러리.

 

 - Java 객체를 JSON으로 변환  =>   .toJson()

Gson gson = new Gson();
MyObject myObj = new MyObject();
String json = gson.toJson(myObj);

 

 - JSON 을 Java객체로 변환  =>   .fromJson()

Gson gson = new Gson();
String json = "{\"name\":\"John\", \"age\":30}";
MyObject myObj = gson.fromJson(json, MyObject.class);

 

객체의 필드 이름과 JSON의 키 이름이 일치하면 자동으로 매핑된다.


 

* Java의 컬렉션타입들도 가능. ( Array, List, Map )

 

 - Json을 Map으로

Map<String, Object> map = gson.fromJson(json, mapType);

 - Json을 List로

 List<YourObject> list = gson.fromJson(jsonArray, listType);

 - Json을 Array로

YourObject[] array = gson.fromJson(jsonArray, YourObject[].class);

 


 

- Map에서 JSON으로

for (Map.Entry<String, Object> entry : map.entrySet()) {
	json.put(entry.getKey(), entry.getValue());
}

* Map.Entry 

Map.Entry 메소드 : getKey() , getValue() , setValue() , equals() , hashCode()

더보기

 

Map의 한 항목(entry)에 접근 가능

// Map.Entry를 사용하여 Map 순회
for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
	String name = entry.getKey();
	Integer age = entry.getValue();
	System.out.println(name + ": " + age);
}

 

위처럼 Map을 순회하며 각 Key-Value 값을 쌍으로 출력할 수 있다.