ObjectMapper ์ฌ์ฉํด์ List๋ฅผ ํ๋ฐฉ์ ํน์ ํ์
์ List<Model>๋ก ๋งคํ ์ํฌ ๋
list <-> list mapping
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
...
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); //์ฌ๊ธฐ ์ ์ธ ์๊ณ Model ์ชฝ์ lombok annotation ์ฌ์ฉํด์ ํด์ค๋ ๋๋ค.
List<ComputeModel> computeList = mapper.readValue(message.getData().toString(), new TypeReference<List<ComputeModel>>() {});
...
๋กฌ๋ณต ์ด๋
ธํ
์ด์
์ผ๋ก FAIL_ON_UNKNOWN_PROPERTIES ์ฌ์ฉ ์์
@JsonIgnoreProperties(ignoreUnknown = true)
java 17๋ถํฐ๋ ํ์ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
List<ComputeModel> computeList = mapper.readValue(message.getData().toString(), new TypeReference<>() {});
๊ทผ๋ฐ java8๋ก ๋ฎ์ถฐ์ ํ ๋๋ ํ์ ๊ผญ ์ง์ ํด์ค์ผํ๋ค.
List<ComputeModel> computeList = mapper.readValue(message.getData().toString(), new TypeReference<List<ComputeModel>>() {});
์๋๋ for๋๋ฉด์ model์์ ํ๋์ฉ ๋งคํ ์์ผ์คซ๋๋ฐ list ํ๋ฐฉ์ ๋งคํ์ด ๋๋ ๋ก์ง์ for๋ฌธ ํ๋ ๊ฑท์ด๋ผ ์ ์์ด ์ข์์.
String์ผ๋ก ๋ณํ์ ํด์ค์ผํ๊ธฐ ๋๋ฌธ์ ์์์ ๋์ด์ค๋ ํ์
์ด string์ด๋ ์๋๋์ ๋ฐ๋ผ convertํ๋ ๋ถ๋ถ์ด ๋ค์ ํ๋ฒ ๋ค์ด๊ฐ๋ค.
API๋ง๋ค ๋๊ฒจ์ฃผ๋ Response Spec์ด ๋ฌ๋ผ์ ๋๊ฐ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์ฌ์ฉํ๋ค.
- mapper.readValue(mapper.writeValueAsString(message.getData()), new TypeReference<list<>>() {});
- mapper.readValue(message.getData().toString(), new TypeReference<>() {});
'๊ฐ๋ฐ์ํ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ ์ง์ฐ TimeUnit.Sleep (0) | 2023.05.31 |
---|---|
char to int (0) | 2023.05.10 |
[Java] List ๋๋๊ธฐ (0) | 2022.05.23 |
[Java] Null String Casting (0) | 2022.04.29 |
[Java] Map ์ ๊ณต ๋ฉ์๋๋ค ์ ๋ฆฌ (0) | 2022.04.26 |