์์ํ๋ฉฐ
์ค๋์ ํน์ GW์์๋ ์นด๋ฉ ์ผ์ด์ค๊ฐ ์๋๋ผ ์ค๋ค์ดํฌ ์ผ์ด์ค๋ก ์๋ต์ ์ค์ผ ํ๋ ์ํฉ์ด ์๊ฒผ๋ค.
๊ฐ๋ฐ์๋ค์ ์ ํต์ ์ผ๋ก ๋ฐ๋ณต ์์ ์ ์ซ์ดํ๊ณ key๋ฅผ ๋ฐ๊พธ๊ธฐ ์ํด์ ๋ชจ๋ key ๋ง๋ค, @JsonProperty ๋ฅผ ๋ฃ์ด์ฃผ๊ธฐ์... ๋ฌด๋ฆฌ๊ฐ ์๋ค.
์ด๋ ธํ ์ด์ ํ๋๋ก ํธ๋ฆฌํ๊ฒ ๋ณ๊ฒฝ์ ํด๋ณด์.
@JsonProperty ๋ฉ์ถฐ!
ํด๋น Task๋ฅผ ๋ค๋ฅธ ๋ถ์๊ฒ ๋ถํ์ ํ๋๋ Response ๊ฐ์ฒด์ Data Class์ @JsonProperty๋ก ๋ก์น ์ ํด๋์๋ค.
๋ฌผ๋ก ์ด๋ ๊ฒ ํด๋ ๊ฐ๋ฐ์ ๋ฌธ์ ๊ฐ ์๊ณ ๋์์๋ ๋ฌธ์ ๋ ์๋ค. ํ์ง๋ง ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ณ , ์์งํ ๊ท์ฐฎ๋ค.
@JsonNaming์ ์จ๋ณด์
์ด๋ ธํ ์ด์ ํ๋๋ก ์์ฝ๊ฒ, ์ค๋ค์ดํฌ์ผ์ด์ค์ ์นด๋ฉ์ผ์ด์ค๋ฅผ ๋ณ๊ฒฝ ํ ์ ์๋ค.
์๋์ ์์ ์ฝ๋๋ฅผ ๋ณด์.
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class)
data class Me(
val id: Long,
val userId: Long,
val issueDate: LocalDateTime,
)
์๋ ๊ฒ ์ฝ๋๋ฅผ ์ง ํ๊ณ ์์ฑ ํด์ค๋ค๋ฉด, ์๋์ ๊ฐ์ด ์ง ํ๊ณ JSON์ด ์์ฑ ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
{
"id" : 1,
"user_id": 2,
"issue_date" : "2021-02-02"
}
๋ง์น๋ฉฐ
์์ ์๋ ๋๋ ์ด @JsonNaming ์ด๋ ธํ ์ด์ ์ ๋ชจ๋ฅด๊ธฐ๋ ํ๊ณ Jackson์ ์ด์ง ์ผ๋ง ์๋๊ธฐ๋ ํด์ @JsonProperty / Gson์ @SerializedName ์ผ๋ก ๋ง์ด ์ฌ์ฉ ํ์๋ค. ํ์ง๋ง 1,2๊ฐ์ key์ผ๋๋ ๊ด์ฐฎ์ง๋ง 20๊ฐ 30๊ฐ๊ฐ ๋๋ ์๊ฐ ๋๋ฝ์ด ์ด๋ฆฌ๊ณ ์ ์ง๋ณด์๊ฐ ์ ์ ํ๋ค์ด์ง๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ํธํ๊ฒ ์ ์ง ๋ณด์ ํ๋ฉด ์ข์๋ฏํ๋ค. (์ด๋ ธํ ์ด์ ์ง์ฅ์ธ๊ฒ๊ฐ๊ธดํ์ง๋ง ์ํผ...)
'๐ป ๋ฐฑ์๋ ๊ฐ๋ฐ > Spring ์ด ์ ๋๋ ํด์ค์ผ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring ์ด ์ ๋๋ ํด์ค์ผ์ง - 01. ์์ํ๋ฉฐ (2) | 2020.05.07 |
---|
๋๊ธ