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 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 ""; } } }