Custom Serialize
@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();
}
}Last updated