1편에서 Spring Boot에서 데이터를 JSON형식으로 표현하는 가장 기본적인 방법인 클래스를 이용한 방법을 배웠다.
이번에는 Gson을 이용한 JsonOjbect to String, String to JsonObject를 알아아보자.
개인적인 경험으론 Gson이 가장 Json파싱에서 핵심이 아닐까 생각한다.
Spring boot Json 1편, 3편, 4편, 마지막
1. 2018/11/06 - [Spring Boot] - Spring Boot Json, JsonObject로 만들기 - JSON 1편
2 .2018/11/09 - [Develop/Spring Boot] - Spring Boot Json, Jackson을 이용한 JsonParsing - Json 3편
4. 2018/11/13 - [Develop/Spring Boot] - Spring Boot Json, hashmap to json , JsonObject 만들기- JSON 마지막
번외 Database의 값을 Json으로 select하는 방법.
1. 2018/10/24 - [Spring Boot] - Spring boot jpa map, hashmap, JSON형식
2. 2018/10/28 - [Spring Boot] - Spring boot JPA EntityManager를 이용한 Map형식으로 mapping하기
Spring boot에서 MySQL JSON 타입 SELECT하는 방법
1. 2018/11/30 - [Develop/Spring Boot] - Spring boot MySQL JSON - MySQL JSON DATA TYPE 값 가져오기
1. 먼저 pom.xml에 의존성을 추가한다.
com.google.code.gson gson 2.8.5
2. Gson을 이용한 Json 생성
public String test3() { Gson gson = new Gson(); JsonObject obj = new JsonObject(); String id=null; obj.addProperty("id", id); obj.addProperty("pass", 1234); String i = obj.toString(); String j = gson.toJson(obj); System.out.println(i); System.out.println(j); return i; }
Gson의 JsonObject를 Import받고 JsonObject를 이용하여 Json 형식으로 만들었다.
위의 toString()으로 호출한 결과와 gson.toJson()을 이용한 결과가 다르다는 걸 볼 수 있다.
아래의 gson.toJson()을 이용하면 null값이 들어올 경우 키값이 사라져 버린다.
3. String to JsonObject
public void test3() { Gson gson = new Gson(); String json = "{\"id\": 1, \"password\": \"1234\"}"; TestDTO test = gson.fromJson(json, TestDTO.class); System.out.println(test.getId()); System.out.println(test.getPassword()); }
1편에서 사용한 TestDTO를 통해 Json객체를 생성할 수 있다.
4. 객체를 Json으로 만들기
public void test3() { Gson gson = new Gson(); TestDTO test2 = new TestDTO(); test2.setId(2); test2.setPassword("2222"); String i=gson.toJson(test2); System.out.println(i); }
5. Gson의 JsonParser와 JsonElement를 통한 JsonParsing
public void test3() { String json = "{\"id\": 1, \"password\": \"1234\"}"; JsonParser jp = new JsonParser(); JsonElement je = jp.parse(json); int id = je.getAsJsonObject().get("id").getAsInt(); String pass = je.getAsJsonObject().get("password").getAsString(); System.out.println(id + " / " + pass); }
6. Gson을 이용하여 Class의 toString() 을 이용한 Json 생성
1편의 TestDTO클래스에 Gson을 이용한 toString() 으로 보다 빠르고 편리하게 Json을 생성할 수 있다.
import com.google.gson.Gson; public class TestDTO { private Integer id; private String password; public TestDTO() { super(); } public TestDTO(Integer id, String password) { super(); this.id = id; this.password = password; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return new Gson().toJson(this); } } public void test3() { Gson gson = new Gson(); TestDTO test2 = new TestDTO(); test2.setId(2); test2.setPassword("2222"); String json = test2.toString(); System.out.println(json); }
7. 기타
이외에도 Json 예쁘게 출력하는 방법 등 여러가지 기능이 존재한다.
Gson가이드 - https://github.com/google/gson/blob/master/UserGuide.md
'Develop > Spring Boot' 카테고리의 다른 글
Spring Boot Deserialization Json, Deserialization JsonString to JsonObject - Json 4편 (0) | 2018.11.12 |
---|---|
Spring Boot Json, Jackson을 이용한 JsonParsing - Json 3편 (0) | 2018.11.09 |
Spring Boot Json, JsonObject로 만들기 - JSON 1편 (0) | 2018.11.06 |
Spring boot Jsoup Html 파싱 (0) | 2018.11.05 |
Spring Boot timezone UTC, KST설정 (0) | 2018.11.01 |