현제의 현재이야기

[Spring] Json에 포함되는 필드 본문

JAVA

[Spring] Json에 포함되는 필드

현재의 현제 2023. 4. 14. 11:16
package com.example.domain.domain;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.persistence.*;
import java.time.LocalDateTime;

@Entity
@Getter @Setter
@Table(name = "member")
@NoArgsConstructor
public class Member {
    @Id
    @GeneratedValue
    @Column(name = "member_id")
    private Long id;

    private int age;
    private LocalDateTime createdAt;

    public Member(int age) {
        this.age = age;
        this.createdAt = LocalDateTime.now();
    }
    // 비지니스 로직
    public double calculateAverage() {
        double average = 0.0;
        if ((this.age >= 55) && (this.age < 65)) {
            average = 12.37;
        } else if ((this.age >= 65) && (this.age < 75)) {
            average = 11.17;
        } else if ((this.age >= 75) && (this.age < 85)) {
            average = 10.50;
        } else if (this.age >= 85) {
            average = 6.64;
        }
        return average;
    }
}

  • 이렇게 되어있으면 객체에는 @getter 영향을 받는 id, age, createdAt이 포함된다.
[
    {
        "id": 3,
        "question": {
            "id": 2,
            "imageUrl": "url.com",
            "answer": "정답"
        },
        "member": {
            "id": 1,
            "age": 66,
            "createdAt": "2023-04-13T22:46:34.565342"
        },
        "answerStatus": "WAITING",
        "audio": "audio.com"
    }
]

하지만 메소드도 get 이름을 붙이면 getter 메소드로 분류되어서 Json에 자동으로 추가된다.

public double getAverage() {
    double average = 0.0;
    if ((this.age >= 55) && (this.age < 65)) {
        average = 12.37;
    } else if ((this.age >= 65) && (this.age < 75)) {
        average = 11.17;
    } else if ((this.age >= 75) && (this.age < 85)) {
        average = 10.50;
    } else if (this.age >= 85) {
        average = 6.64;
    }
    return average;
}

결과

[
    {
        "id": 3,
        "question": {
            "id": 2,
            "imageUrl": "url.com",
            "answer": "정답"
        },
        "member": {
            "id": 1,
            "age": 66,
            "createdAt": "2023-04-13T22:46:34.565342",
            "average": 11.17
        },
        "answerStatus": "WAITING",
        "audio": "audio.com"
    }
]
  • 자동으로 nested serialize도 해주고,, 뭐지 스프링 생각보다 간편할지도
  • 그러니깐 결론적으로 Json에 포함 되는 것은 getter가 있을 때 포함된다.

'JAVA' 카테고리의 다른 글

[spring] FetchType에 대하여  (0) 2023.04.13
[Spring] null 값 처리와 HTTP response  (0) 2023.04.07
[JAVA SPRING] 0314 TIL  (0) 2023.03.14
[JAVA] JAVA Static과 Python global과의 차이점  (0) 2023.03.10
기초문법 1일차  (0) 2023.03.08
Comments