
๋ชจ๋ ์์ค๋ ์ฌ๊ธฐ์ ํ์ธํ์ค ์ ์์ต๋๋ค. Optional์ Jackson์ ์ด์ฉํด Serialize/Deserializeํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? Optional ํ๋๋ฅผ ๊ฐ์ง๋ Object ํ๋์ Optional ํ๋๋ฅผ ๊ฐ์ง๋ Name์ด๋ผ๋ ํด๋์ค๋ฅผ ์์ฑํ์์ต๋๋ค. package io.lcalmsky.jackson.domain; import lombok.AccessLevel; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Optional; public class BeanWithOptional { @Data @NoArgsConstructor(access = AccessLevel.PROTECTED) public static class..

๋ชจ๋ ์์ค๋ ์ฌ๊ธฐ์ ํ์ธํ์ค ์ ์์ต๋๋ค. ์ปค์คํ ์ ๋ ธํ ์ด์ (@JacksonAnnotationInside) @JacksonAnnotationInside ์ ๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ์ปค์คํ ์ ๋ ธํ ์ด์ ์ ์ ์ํ ์ ์์ต๋๋ค. package io.lcalmsky.jackson.domain.annotation; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import java.lang.annotation.Retention; import java.l..
๋ชจ๋ ์์ค๋ ์ฌ๊ธฐ์ ํ์ธํ์ค ์ ์์ต๋๋ค. @JsonProperty JSON์์์ ์์ฑ ์ด๋ฆ์ ๋ํ๋ ๋๋ค. ํ๋ ๋ณ์ ๋๋ getter/setter ๋ฉ์๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import lombok.Setter; public class BeanWithJsonProperty { @Getter @Setter @JsonProperty("identity") private int id; private String name; @JsonProperty("nickname") public String getName()..
๋ชจ๋ ์์ค๋ ์ฌ๊ธฐ์ ํ์ธํ์ค ์ ์์ต๋๋ค. Jackson์์ ๋คํ์ฑ ์ฒ๋ฆฌ๋ฅผ ์ํ์ฌ ์๋์ ๊ฐ์ ์ ๋ ธํ ์ด์ ์ ์ฌ์ฉํฉ๋๋ค. @JsonTypeInfo: ์ง๋ ฌํ ์ ํฌํจํ ํ์ ์ ๋ณด์ ์ธ๋ถ ์ฌํญ์ ๋ํ๋ ๋๋ค. @JsonSubTypes: ์ ๋ ธํ ์ด์ ์ด ๋ฌ๋ฆฐ ํ์ ์ ํ์ ํ์ ์ ์ง์ ํฉ๋๋ค. @JsonTypeName: ์ ๋ ธํ ์ด์ ์ด ๋ฌ๋ฆฐ ํ์ ์ ๋ ผ๋ฆฌ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; ..
๋ชจ๋ ์์ค๋ ์ฌ๊ธฐ์ ํ์ธํ์ค ์ ์์ต๋๋ค. @JsonIgnoreProperties @JsonIgnoreProperties๋ Jackson์ด ๋ฌด์ํ ์์ฑ ๋๋ ์์ฑ ๋ฆฌ์คํธ๋ฅผ ๋ํ๋ ๋๋ค. ๋ฌธ์์ด ๋ฐฐ์ด ํ์์ผ๋ก ๋ํ๋ผ ์ ์์ต๋๋ค. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.AccessLevel; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor(access = AccessLevel.PROTECTED) @JsonIgnoreProperties("password") pu..

๋ชจ๋ ์์ค๋ ์ฌ๊ธฐ์ ํ์ธํ์ค ์ ์์ต๋๋ค. @JsonCreator ์ญ ์ง๋ ฌํ์ ์ฌ์ฉ๋๋ ์์ฑ์๋ ํฉํ ๋ฆฌ๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. ํ์ํ ๋์ ์ํฐํฐ์ ์ ํํ ์ผ์นํ์ง ์๋ ์ผ๋ถ JSON์ ์ญ ์ง๋ ฌํํด์ผ ํ ๋ ์ ์ฉํฉ๋๋ค. ์๋์ ๊ฐ์ JSON์ด ์กด์ฌํ๊ณ { "id": 1, "theName": "beanName" } ๋์ ์ํฐํฐ์๋ "theName" ํ๋๊ฐ ์กด์ฌํ์ง ์์ง๋ง ์ํฐํฐ ์์ฒด๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ์ง ์์ ๋ ์์ฑ์์ @JsonCreator์ฃผ์์ ๋ฌ๊ณ @JsonProperty๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jac..

๋ชจ๋ ์์ค๋ ์ฌ๊ธฐ์ ํ์ธํ์ค ์ ์์ต๋๋ค. Jackson Serialization jackson์ด ์ ๊ณตํ๋ ์ง๋ ฌํ(serialization) ์ ๋ ธํ ์ด์ ์ ๋ํด ์์๋ด ์๋ค. @JsonAnyGetter Map ํ๋๋ฅผ ํ์ค property๋ก ์ฌ์ฉํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. package io.lcalmsky.jackson_test.domain; import com.fasterxml.jackson.annotation.JsonAnyGetter; import java.util.HashMap; import java.util.Map; public class ExtendableBean { public String name; private Map properties; public ExtendableBean(Strin..
- Total
- 180,578
- Today
- 58
- Yesterday
- 220
- intellij
- ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ
- Linux
- ํจ๊ป ์๋ผ๊ธฐ ํ๊ธฐ
- ์คํ๋ง ๋ฐ์ดํฐ jpa
- ์๊ณ ๋ฆฌ์ฆ
- spring boot application
- spring boot jwt
- Spring Boot JPA
- r
- ์คํ๋ง ๋ถํธ ์ ํ๋ฆฌ์ผ์ด์
- gRPC
- ํด๋ฆฐ ์ํคํ ์ฒ
- ์คํ๋ง ๋ถํธ ํํ ๋ฆฌ์ผ
- spring boot app
- QueryDSL
- proto3
- JSON
- leetcode
- ์คํ๋ง๋ถํธ
- ํจ๊ป ์๋ผ๊ธฐ
- @ManyToOne
- Spring Data JPA
- ์คํ๋ง ๋ถํธ ํ์ ๊ฐ์
- Spring Boot
- JPA
- Jackson
- Spring Boot Tutorial
- Java
- ์คํ๋ง ๋ถํธ