我有一个特定的Web服务,期望将JSON作为发布内容,并将向后吐出XML。我正在为所有网络通话使用Retrofit。这是我使用XML转换器设置Retrofit适配器的方法:
mRestAdapter = new RestAdapter.Builder()
.setEndpoint(getBaseUrl())
.setConverter(new SimpleXMLConverter())
.build();
如您所见,我没有使用Gson转换器。我如何设法发布任何JSON?谢谢!
最佳答案
创建自定义Converter
。这将使用不同的转换器进行序列化和反序列化。
public class MixedConverter implements Converter {
private Converter mSerializer;
private Converter mDeserializer;
public MixedConverter(Converter serializer, Converter deserializer) {
mSerializer = serializer;
mDeserializer = deserializer;
}
@Override
public Object fromBody(TypedInput body, Type type) throws ConversionException {
return mDeserializer.fromBody(body, type);
}
@Override
public TypedOutput toBody(Object object) {
return mSerializer.toBody(object);
}
}
用法:
.setConverter(new MixedConverter(new SimpleXMLConverter(), new GsonConverter(gson)));