gpt4 book ai didi

java - 改造 2 和 GSON java.lang.IllegalArgumentException : Field map contained null value for key

转载 作者:搜寻专家 更新时间:2023-11-01 08:33:47 27 4
gpt4 key购买 nike

自从我从 retrofit 1.9 迁移到 2.0

以来,我每次发出服务器请求时都会遇到以下错误
java.lang.IllegalArgumentException: Field map contained null 
value for key 'installments'.

我调用的方法获取一个包含所有参数的 Map,如下面的代码:

@FormUrlEncoded
@POST("/api/method")
Call<Response<Payment>> pay(@FieldMap Map<String, String> fields);

但似乎每当我们有一个具有 NULL 值的条目时,它就会抛出异常,甚至不执行请求。

我们还使用 Dagger 2。这是使用 Converter.Factory 创建 GSON 的方式:

    @Provides
@Singleton
Converter.Factory provideGsonConverterFactory() {

Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd hh:mm:ss")
.setPrettyPrinting()
.create();
return GsonConverterFactory.create(gson);
}

在迁移到 Retrofit 2.0 之前,我们没有遇到这个问题,这很奇怪。

的确,Jackson 有一个属性可以做到这一点:

      ObjectMapper mapper = new ObjectMapper().configure(SerializationConfig
.Feature.WRITE_NULL_MAP_VALUES, false);

最佳答案

从 retrofit2 开始,任何 map (FiledMap、QueryMap、PartMap)都不接受空键或空值。参见 Document maps don't allow null anywhere.

关于java - 改造 2 和 GSON java.lang.IllegalArgumentException : Field map contained null value for key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com