ํ์ง๋ง Error์ ๊ฐ์ด ๋น ์คํ์ ๋ฐ๋ฅด์ง ์์ ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ Custom Serialize๋ฅผ ๊ตฌํํ๊ณ ์ถ๋ค๋ฉด, @JsonComponent
์ JsonSerialzer<>
๋ฅผ ์์๋ฐ์ serialize
๋ฅผ overriding ํด์ฃผ์.
@JsonComponent
public class LongToStringSerializer extends StdSerializer<Long> {
@Override
public void serialize(Long val, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
jsonGenerator.writeString(val.toString());
}
}
@JsonComponent
public class ErrorsSerializer extends JsonSerializer<Errors> {
@Override
public void serialize(Errors errors, JsonGenerator gen, SerializerProvider serializerProvider ) throws IOException {
gen.writeFieldName("errors"); //error๊ฐ์ฒด ์ด๋ฆ
gen.writeStartArray(); //error๊ฐ ์ฌ๋ฌ๊ฐ ์ผ ์ ์์ผ๋ Arrayํํ
errors.getFieldErrors().forEach( e -> {
try{
gen.writeStartObject();
gen.writeStringField("field",e.getField());
gen.writeStringField("objectName",e.getObjectName());
gen.writeStringField("code",e.getCode());
gen.writeStringField("defaultMessage",e.getDefaultMessage());
Object rejectedValue = e.getRejectedValue();
if(rejectedValue != null){
gen.writeStringField("rejectedValue",rejectedValue.toString());
}
gen.writeEndObject();
}catch (IOException ex){
ex.printStackTrace();
}
});
errors.getGlobalErrors().forEach(e->{
try{
gen.writeStartObject();
gen.writeStringField("objectName",e.getObjectName());
gen.writeStringField("code",e.getCode());
gen.writeStringField("defaultMessage",e.getDefaultMessage());
gen.writeEndObject();
}catch (IOException ex){
ex.printStackTrace();
}
});
gen.writeEndArray();
}
}