AndroidRetrofit2:在不使用GSON或JSONObject的情况下序列化null
创始人
2024-10-09 18:31:36
0

在不使用GSON或JSONObject的情况下,可以通过重写Converter.Factory来序列化null。以下是实现此方法的步骤:

1.创建NullOnEmptyConverterFactory.java类,并实现Converter.Factory接口。

import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Converter;
import retrofit2.Retrofit;

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

public class NullOnEmptyConverterFactory extends Converter.Factory {
    @Override
    public Converter responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) {
        final Converter delegate = retrofit.nextResponseBodyConverter(this, type, annotations);
        return new Converter() {
            @Override
            public Object convert(ResponseBody body) throws IOException {
                if (body.contentLength() == 0) return null;
                return delegate.convert(body);
            }
        };
    }

    @Override
    public Converter requestBodyConverter(Type type, Annotation[] parameterAnnotations, Annotation[] methodAnnotations, Retrofit retrofit) {
        final Converter delegate = retrofit.nextRequestBodyConverter(this, type, parameterAnnotations, methodAnnotations);
        return new Converter() {
            @Override
            public RequestBody convert(Object value) throws IOException {
                if (value == null) return RequestBody.create(okhttp3.MediaType.parse("text/plain"), "");
                return delegate.convert(value);
            }
        };
    }
}

2.在Retrofit实例中添加NullOnEmptyConverterFactory工厂。

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(baseUrl)
        .addConverterFactory(new NullOnEmptyConverterFactory())
        .build();

现在您可以在API响应中正常使用null。

相关内容

热门资讯

透视模拟器!约局吧如何查看是否... 透视模拟器!约局吧如何查看是否有挂(透视)都是真的是有挂(详细辅助详细教程)一、软件透明挂的定义与意...
普及知识!wepoker底牌透... 普及知识!wepoker底牌透视脚本,wepoker透视破解版,安装教程(有挂教程)是一款可以让一直...
透视教程!hhpoker有辅助... 透视教程!hhpoker有辅助吗(透视)都是是真的有挂(详细辅助力荐教程);小薇(透视辅助)致您一封...
今日焦点!智星德州插件2024... 今日焦点!智星德州插件2024最新版,hhpoker作弊实战视频,2025新版技巧(有挂教程)是一款...
透视工具!hhpoker辅助挂... 透视工具!hhpoker辅助挂下载(透视)果然真的有挂(详细辅助切实教程)1、超多福利:超高返利,海...
总算了解!we poker插件... 总算了解!we poker插件,哈糖大菠萝万能挂,安装教程(有挂方法)准备好在哈糖大菠萝万能挂ia的...
透视私人局!佛手在线是不是有挂... 透视私人局!佛手在线是不是有挂(透视)总是真的是有挂(详细辅助AI教程)1、首先打开最新版本,在首页...
盘点几款!aapoker透视怎... 盘点几款!aapoker透视怎么用,约局吧能不能开挂,力荐教程(有挂透明);最新版2024是一款经典...
透视线上!wepoker私人局... 透视线上!wepoker私人局外卦(透视)竟然真的有挂(详细辅助解说技巧);1. ai辅助创建新账号...
实测必看!wepoker智能辅... 实测必看!wepoker智能辅助插件,wepoker轻量版透视系统,技巧教程(有挂透视)这是由厦门游...