Jackson Converting String to Object

ytibrewala picture ytibrewala · May 5, 2017 · Viewed 21.5k times · Source

Link.java

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({ "rel", "href","method" })
public class Link {

    @JsonProperty("rel")
    private String rel;
    @JsonProperty("href")
    private String href;
    @JsonProperty("method")
    private Method method;

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}

I have this third party class with fasterxml jackson annotations. I can convert a given object into a string using the specified toString() method. Is there any way of using that String to get an object of type Link?

Note: The object itself has an embedded object (which has several more embedded objects) and these too needs to be converted into a Method object from the string itself.

Answer

ytibrewala picture ytibrewala · May 12, 2017

Just putting the comment by @pvpkiran in an answer.

Use ObjectMapper class from com.fasterxml.jackson.databind

ObjectMapper objectMapper = new ObjectMapper();

Converting from Object to String:

String jsonString = objectMapper.writeValueAsString(link);

Converting from String to Object:

Link link = objectMapper.readValue(jsonString, type)