大佬教程收集整理的这篇文章主要介绍了获取 java.lang.IllegalArgumentException:尝试动态更改 Retrofit 中的键名称时无法创建转换器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我正在尝试动态更改我的改造@serializedname() 中的键。我关注了 this topic 和 this topic also,所以我明白如果我想用动态键(带有动态名称)解析 JsON我需要使用 HashMap。我尝试过。但是没有成功……更糟糕的是,我在调用此端点的 APICall 方法上遇到了这个异常。此外,当我评论有问题的代码部分时,我的应用程序不会崩溃并获得响应 200,因此我在尝试动态解析键名时肯定做错了
这就是我在这个例子中的代码的结构:InvestmenTinForceModel -> InvestmentForceRegisteredInvestments-> PercentagesInvestmenTinforce
我的 APICall
public Observable<InvestmenTinForceModel> geTinvestmentsInForce(){
return APIservice.geTinvestmentsInForce();
}
这是我的 JsON 中有问题的部分:
"registeredInvestments": {
"percentages": {
"2": 12.02,"8": 87.98
},"registeredInvestmentsData": [//other Json stuff]
}
和我的模型:
public class InvestmenTinForceModel {
@serializedname("registeredInvestments")
private InvestmentForceRegisteredInvestments registeredInvestments;
}
我的 InvestmentForceRegisteredInvestments
@serializedname("percentages")
private Map<@R_607_10495@ng,PercentagesInvestmenTinforce> @R_607_10495@ngPercentagesInvestmenTinforceMap;
@serializedname("registeredInvestmentsData")
private List<RegisteredInvestmentsDataModel> registeredInvestmentsDataModelList;
}
最后:
public class PercentagesInvestmenTinforce {
privatE int investmentsType;
}
私有字段没有@serializedname,因为我不知道该放什么,而且如果服务器没有发送任何内容,这个类可以为空,例如这些数字“2”和“8”有时只能是一个不是 2 或 8 而是其他数字,如果你明白我想说的话。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的获取 java.lang.IllegalArgumentException:尝试动态更改 Retrofit 中的键名称时无法创建转换器全部内容,希望文章能够帮你解决获取 java.lang.IllegalArgumentException:尝试动态更改 Retrofit 中的键名称时无法创建转换器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。