Spring Boot 시작하기 2 - GSON vs JACKSON

kwlee·2021년 9월 13일
0

Spring Boot

목록 보기
2/3

GSON

class 모델링 없이 직접 json을 만들어 사용

  1. 의존성 추가
dependencies {
	// GSON
	implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
}
  1. 사용
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

@RestController
public class TestController {

    @GetMapping(value = "/message2")
    public String testByResponseBody2() {
        JsonObject testjs = new JsonObject();

        testjs.addProperty("a", "anlysis");
        testjs.addProperty("c", new Date().toString());

        JsonArray testja = new JsonArray();
        for(int i=0; i<5; i++) {
            JsonObject testbj = new JsonObject();
            testbj.addProperty("test"+i, i);
            testja.add(testbj);
        }

        testjs.add("follower", testja);

        return testjs.toString();
    }

}

JACKSON

annotation 을 사용하여 class 변수를 자동으로 json 형태로 변환

Class 에 @RestController 가 있어야함
Class 에 @Controller 가 붙어있다면 Function 에 @ResponseBody 가 있어야 Object 반환 가능

TestModel.java

import java.util.Date;

// 데이트타임 포맷 
import com.fasterxml.jackson.annotation.JsonFormat;
// return에서 제외할 경우
import com.fasterxml.jackson.annotation.JsonIgnore;
// 조건에 따라 return
import com.fasterxml.jackson.annotation.JsonInclude;
// json key 값을 수정해서 보냄
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TestModel {
    @JsonIgnore
    public String projectName;
    @JsonProperty(value = "testValue")
    public String author;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    public Date createdDate;
}
profile
안녕하세요.

0개의 댓글