Skip to content

Instantly share code, notes, and snippets.

@emanuelet
Created March 20, 2018 15:44
Show Gist options
  • Save emanuelet/a32330c0b372028b5f115697d77ff58f to your computer and use it in GitHub Desktop.
Save emanuelet/a32330c0b372028b5f115697d77ff58f to your computer and use it in GitHub Desktop.

Revisions

  1. emanuelet created this gist Mar 20, 2018.
    45 changes: 45 additions & 0 deletions JacksonParser.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,45 @@
    import android.text.TextUtils;

    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.JavaType;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.ObjectReader;
    import com.orhanobut.hawk.Parser;

    import java.io.IOException;
    import java.lang.reflect.Type;

    public class JacksonParser implements Parser {

    private final ObjectMapper mapper;

    public JacksonParser() {
    this.mapper = new ObjectMapper();
    }

    @Override
    public <T> T fromJson(String content, Type type) {
    if (TextUtils.isEmpty(content)) {
    return null;
    }
    JavaType javaType = mapper.getTypeFactory().constructType(type);
    ObjectReader objectReader = mapper.readerFor(javaType);
    try {
    return objectReader.readValue(content);
    } catch (IOException e) {
    e.printStackTrace();
    return null;
    }
    }

    @Override
    public String toJson(Object body) {
    try {
    return mapper.writeValueAsString(body);
    } catch (JsonProcessingException e) {
    e.printStackTrace();
    return "";
    }
    }

    }