使用Retrofit和Moshi发送HashMap作为请求正文

时间:2018-08-08 12:16:51

标签: java kotlin retrofit2 moshi

我有以下应通过API发送的JSONObject。 price对象被声明为HashMap(),因为其成员数量根据用户需求而变化,现在当我想发布该对象时,它会出现错误,我需要为HashMap使用json适配器。 我尝试先将哈希图转换为jsonObject,然后将整个类转换为json,但是再次将转换为json的哈希图添加服务器无法识别的标签

Json

1 个答案:

答案 0 :(得分:0)

Moshi禁止为诸如HashMap之类的平台类型创建内置适配器,因为适配器将依赖于该平台版本的实现细节。对于不受控制的类型,应始终注册使用该类型的公共API的显式JsonAdapter。

但是,特别是对于HashMap,不需要进行任何大的更改。您应该声明一个Map(接口),而不是HashMap(一个平台实现)。