json을 펼쳐주는 @JsonUnwrapped
juneyr··
DTO
**DTO (Data Transfer Object) **는 클라이언트와 데이터를 교환하기 위해서 형식을 정해놓은 것이다.
예를 들어 화면에 상품과 그에 대한 리뷰가 같이 필요하다면,
와 같이 여러개를 감싸서 클라이언트에서 사용할 데이터만 쏙쏙 골라서 내려줄 집합인 것이다.
json 모양이 복잡해 : nested json
그런데 위와 같은 DTO는 json으로 생성할 때 괄호 안에 괄호가 있는 형식으로 생성된다.
즉 Product와 Review가 하나의 엔티티이므로 다음과 같이
{
"id" : 1131310,
{
"product_name": "블루베리우유",
"price" : 5000
},
{
"content": "JMT입니다",
"user" : {
"name" : "준벅"
}
}
}
괄호 안에 괄호를 품은 모양으로 생성된다. 이렇게 복잡도가 높아지는 모양을 보통 nested 라고 한다.
그런데 너무 간단한 내용은 nested 되지 않게 펼쳐주는 것이 필요하다.
json을 좀 펼쳐주자!
아래를 보자.
Stat은 count 하나만 가지고 있는 엔티티이다. Stat을 포함 한 DTO를 만들면 json 형태는
와 같은 형태를 띄게 된다.
이때 불필요한 count 주위의 괄호를 없애려면 @JsonUnwrapped를 사용하면 된다.
첫번째 예제에서 @JsonUnwrapped를 사용해보자.
Home은 json으로 변환될때 Product 부분이 펼쳐져서 표시된다.
{
"id" : 1131310,
"product_name": "블루베리우유",
"price" : 5000,
{
"content": "JMT입니다",
"user" : {
"name" : "준벅"
}
}
}