Issue
Is it possible to enforce Converter ( org.springframework.core.convert.converter.Converter) to finish json object mapping?
Json code example:
{
"name": "somename",
"customObject": id
}
where somename - string, id - integer value
mapping to :
@Getter
@Setter
@NoArgConstructor
public class ParentObject{
private String name;
private CustomObject customObject;
}
Converter code example:
@Component
public class CustomObjectConverter implements Converter<String, CustomObject>{
@Autowired
private CustomObjectService customObjectService;
@Override
public CustomObject convert(String arg0) {
Long id = Long.parseLong(arg0);
return customObjectService.findById(id);
}
}
What I want to achieve is to map that json to the object which will have automatically fetched from db nested object.
Solution
You should implement your own JacksonCustomMapper
, by extending JsonMapper
and then registering it into the set of HttpMessageConverters
. But, I do not recommend to pollute the default conversion, you could pass in the @RequestBody
an incomplete json and Jackson will parse it to your object, it would be sufficient to not pass wrong keys in your json object... An example (among thousands) here: http://magicmonster.com/kb/prg/java/spring/webmvc/jackson_custom.html. Enjoy it :-)
Answered By - Fernando Aspiazu
Answer Checked By - Cary Denson (JavaFixing Admin)