반응형

 

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편

3. 2018/11/12 - [Develop/Spring Boot] - Spring Boot Deserialization Json, Deserialization JsonString to JsonObject - Json 4편

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

 

반응형
반응형

 

Spring Boot에서 데이터를 JSON형식으로 표현하는 가장 기본적인 방법으로는 클래스를 이용하는 방법이다.

이 방법을 알아야 다음에 Deserialization한 JSON을 만들 수 있다.

 

Spring boot Json 2편, 3편, 4편, 마지막

1. 2018/11/07 - [Develop/Spring Boot] - Spring Boot Json, Gson을 이용한 JsonObject to String, String to JsonObject- JSON 2편

2. 2018/11/09 - [Develop/Spring Boot] - Spring Boot Json, Jackson을 이용한 JsonParsing - Json 3편

3. 2018/11/12 - [Develop/Spring Boot] - Spring Boot Deserialization Json, Deserialization JsonString to JsonObject - Json 4편

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 값 가져오기

 

 

 

먼저 DTO를 생성한다.

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; 	} 	 } 

다음 컨트롤러를 하나 생성해준다.

@RestController @RequestMapping(value = "/jsontest") public class TestClass { 	 	@GetMapping() 	public TestDTO test() { 		TestDTO test = new TestDTO(1, "1111"); 		return test; 	} 	 	@GetMapping("/2") 	public List test2() { 		List test = new ArrayList(); 		test.add(0, new TestDTO(1, "1111")); 		test.add(1, new TestDTO(2, "2222")); 		test.add(2, new TestDTO(3, "3333")); 		return test; 	} }

그리고 실행하게 되면

 

1. test() 실행화면

 

2. test2() 실행화면

 

이렇게 Json 형태로 출력된다

참고로 Map은 Json형태로 출력되지 않고 {"id" = 1, "password"="1111"} 형식으로 출력된다. List만 Json형식으로 출력된다.

또한, 이렇게 클래스로 만든 JsonObject는 Return할 때만 Json으로 출력되지, log또는 print할 경우엔 Json형식으로 출력되지 않는다.

Json형식으로 출력되게 하려면 다음에 할 2편을 참고.

 

기초는 마무리.

 

반응형
반응형


파이썬에서 beautiful soup과 같은 기능을하는 Jsoup라는 것이 있다.

Html을 파싱하는 것이고




	org.jsoup
	jsoup
	1.11.3

xml에 dependency를 추가하고



Jsoup.parse("내용").body().text();

이렇게 사용하면 각종 html코드들을 삭제한 순수 text들이 파싱된다.


기타 사용법은 라이브러리 사이트에서 확인할 수 있다

https://jsoup.org/


반응형

+ Recent posts