package com.taobao.tae.Mshopping.demo.util; import retrofit.converter.ConversionException; import retrofit.converter.Converter; import retrofit.mime.MimeUtil; import retrofit.mime.TypedInput; import retrofit.mime.TypedOutput; import retrofit.mime.TypedString; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Type; /** * A {@link retrofit.converter.Converter} which uses SimpleXML for reading and writing entities. * * @author Fabien Ric (fabien.ric@gmail.com) */ public class JsonConverter implements Converter { private final static String DEFAULT_CHARSET = "UTF-8"; @Override public Object fromBody(TypedInput typedInput, Type type) throws ConversionException { String charset = DEFAULT_CHARSET; if (typedInput.mimeType() != null) { charset = MimeUtil.parseCharset(typedInput.mimeType()); } try { InputStream body = typedInput.in(); String bodyStr = new String(ResponseUtils.readStream(body), charset); return GsonUtil.g.fromJson(bodyStr, type); } catch (IOException e) { throw new ConversionException(e); } } @Override public TypedOutput toBody(Object source) { return new TypedString(GsonUtil.toJson(source)); } }