JAVA

JSON 정리

Machine_웅 2019. 11. 21. 19:16
728x90
반응형

Java에서 JSON(GSON)사용

May 27, 2017

Java에서 간단하게 json을 생성하고 파싱하는 방법을 알아보자. 여러가지 라이브러리가 있는데 우리는 여기서 구글에서 만든 gson를 이용하겠다. gson은 비교적 가볍고, 메이븐저장소를 지원하고 전반적으로 성능이 좋아서이다.

먼저 메이븐으로 다운로드한다.

com.google.code.gson gson 2.8.0

1. 객체를 json으로 만들자.

Person이라는 객체가 있다면 이를 json으로 변경해보자.

 

@Data 
public class Person { 
	private String name; 
    private int age; 
    private String gender;
}

import com.google.gson.Gson; 

@Test 
public void 객체를_JSON으로_변경() { 
	Person person = new Person(); 
    person.setName("kim"); 
    person.setAge(20); 
    person.setGender("M"); 
    Gson gson = new Gson(); 
    String json = gson.toJson(person); 
    System.out.println(json); 
 }

Gson gson = new Gson(); 로 인스턴스를 만들고 
String json = gson.toJson(person); 으로 처리하면 바로 json 이 만들어진다.

 

2. json 을 직접 만들어보자

이번에는 직접 json을 만들어본다. gson에서 제공하는 JsonObject를 이용해야한다.

import com.google.gson.Gson; 
import com.google.gson.JsonObject;
@Test 
public void 단순_JSON_만들기() {
	Gson gson = new Gson(); 
    JsonObject object = new JsonObject(); 
    object.addProperty("name", "park"); 
    object.addProperty("age", 22); 
    object.addProperty("success", true); 
    String json = gson.toJson(object); 
    System.out.println(json); 
 }

JsonObject를 만들고 
addProperty() 메소드를 이용해서 만들어주고 마지막으로 
gson.toJson()으로 처리해주면 된다.

3. json을 파싱해보자

이번에는 json을 직접 파싱해보자.

import com.google.gson.Gson; 
import com.google.gson.JsonElement; 
import com.google.gson.JsonParser; 
@Test 
public void 문자열_JSON을_파싱() {
	String json = "{\"name\":\"kim\",\"age\":20,\"gender\":\"M\"}"; 
    JsonParser parser = new JsonParser(); 
    JsonElement element = parser.parse(json); 
    String name = element.getAsJsonObject().get("name").getAsString(); 
    System.out.println("name = "+name); 
    
    int age = element.getAsJsonObject().get("age").getAsInt(); 
    System.out.println("age = "+age); 
}

gson에서 제공하는 JsonParser, JsonElement를 이용하면 된다.
getAsJsonObject를 이용해서 원하는 타입을 이용해서 값을 받아오면 된다.

4. json을 객체로 변환하자.

json형태로 되어 있는 문자열을 바로 객체로 변환해보자.

@Test 
public void JSON문자열을_객체로() { 
	String json = "{\"name\":\"kim\",\"age\":20,\"gender\":\"M\"}"; 
    Gson gson = new Gson(); 
    Person person = gson.fromJson(json, Person.class); 
    System.out.println("name = " + person.getName()); 
    System.out.println("age = " + person.getAge()); 
    System.out.println("gender = " + person.getGender()); 
 }

아주 간단하다. fromJson을 사용하면 되고 첫번째 인자로 문자열, 두번째 인자는 문자열을 매핑할 클래스를 지정해주면 된다.

이렇게 gson을 이용해서 간단히 json을 처리할 수 있다. gson에 대한 상세한 내역은 아래에서 확인할 수 있다.

https://github.com/google/gson

728x90
반응형

'JAVA' 카테고리의 다른 글

문자열에 공백 수  (0) 2020.11.23
암호화 SHA-256  (0) 2020.05.21
안드로이드 버튼 모서리 둥글게 하기  (1) 2018.06.22
자바 문자열 포함 여부 확인하기.  (0) 2018.05.07
자바 문자열 대체 replace  (0) 2018.05.06