์คํ๋ง๋ถํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก Jackson๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์๋ฐ ๊ธฐ๋ณธ ์ปฌ๋ ์ ๊ฐ์ฒด๋ค์ Json์ผ๋ก Serialize๋ฅผ ์งํํด์ค๋ค.
ํ์ง๋ง, ๊ธฐ์กด ๋ ๊ฑฐ์ ์ฝ๋์ ์๋ ์ฌ์ฉ์ ์ ์๊ฐ์ฒด๋ฅผ jsonํํ๋ก ๋ฐํํ ์ผ์ด ์๊ธฐ๋ฉด์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ฌ์ฉ์ ์ ์๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ Serializeํด์ผํ ์ง ์ ์๋์ด ์์ง ์์์ ์๊ธฐ๋ ๋ฌธ์ ์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด serializtion์ ์ปค์คํฐ๋ง์ด์งํด์ objectMapper์ ์ถ๊ฐํ๊ณ ์ด๋ฅผ ์คํ๋ง์์ ์ฌ์ฉํ ์ ์๊ฒ ๋น ๋ฑ๋กํด์ฃผ๋ ๊ณผ์ ์ ์งํํ๋ค.
์๋ ์ฝ๋๋ HashMap์ ์์๋ฐ์ ์ฌ์ฉ์์ ์ DataSet๊ฐ์ฒด๋ฅผ ์ง๋ ฌํํ๋ ๊ณผ์ ์ด๋ค.
writeObject()๋ฅผ ํตํด ์ฌ๊ท์ ์ผ๋ก ๊ด๋ จ๋ ์ง๋ ฌํ๋ฅผ ์งํํ์ฌ json ๋ฌธ์์ด์ ๋ง๋ค์ด ๋ฐํํ๊ฒ ๋๋ค.
public class DataSetSerializer extends JsonSerializer<DateSet> {
@Override
public void serialize(DateSet dataSet, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
gen.writeStartObject();
for (Object o : dataSet.keySet()) {
String fieldName = String.valueOf(o);
gen.writeFieldName(fieldName);
gen.writeObject(dataSet.get(fieldName)); // ์ฌ๊ท์ ์ผ๋ก Serializer ํธ์ถ
}
gen.writeEndObject();
}
}
์ด๋ ๊ฒ ๋ง๋ Serializer๋ ์๋ ์ฝ๋ ์ฒ๋ผ module์ ์ถ๊ฐํ ํ ObjectMapper์ ๋ฑ๋กํด์ค์ผ๋ง ํ๋ค.
@Configuration
public class ObjectMapperConfig {
@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(DataSet.class, new DataSetSerializer());
mapper.registerModule(javaTimeModule);
return mapper;
}
}
์ด๋ ๊ฒ ํ๋ฉด ์ถ๊ฐ๋ Serializer์ ObjectMapper๊ฐ ๋น์ ๋ฑ๋ก๋์ด DataSet๊ฐ์ฒด๋ฅผ ๋ฐํ์์๋ ์ ์์ ์ผ๋ก ์ง๋ ฌํ๊ฐ ์งํ๋๋ค.
'๐ป..Tech..๐ป > ๐Spring ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค๋ฅ] PRG(Post-Redirect-Get) ํจํด ์ ์ฉ ์ค๋ฅ (0) | 2021.05.07 |
---|