java / / 2022. 12. 23. 07:42

Json을 flat하게 표시하는 방법

Json을 계층구조로 표시하지 않고 1depth로 flat하게 표시하는 방법이다.

하나의 예를 보자.
다음과 같이 User는 UserName을 속성으로 가지고 있다.

@AllArgsConstructor
@Getter
public class User implements JsonSerializable {

    private String id;

    private UserName userName;

    public static void main(String[] args) {
        User user = new User("rudaks94", new UserName("rudaks", "han"));

        System.out.println(user);
    }

    @Override
    public String toString() {
        return JsonUtil.toJson(this);
    }
}
@AllArgsConstructor
@Getter
public class UserName implements JsonSerializable {

    private String firstName;

    private String lastName;

    @Override
    public String toString() {
        return toJson();
    }
}

User를 실행하면 결과는 아래와 같다.

{
  "id" : "rudaks94",
  "userName" : {
    "firstName" : "rudaks",
    "lastName" : "han"
  }
}

하지만 결과를 2depth가 아닌 아래와 같이 1depth로 표시하려면 어떻게 해야 할까?
{
"id" : ...,
"firstName" : ...,
"lastName" : ...
}

해당 필드에 @JsonUnwrapped를 사용하면 된다.

@JsonUnwrapped
private UserName userName;

결과

{
  "id" : "rudaks94",
  "firstName" : "rudaks",
  "lastName" : "han"
}
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유