通过改造接口,存在数据类PlaylistInsertOperation
、TrackId
和函数insertTracks
。
data class PlaylistInsertOperation(
val tracks: List<TrackId>,
)
data class TrackId(
val id: String,
val albumId: String
)
@FormUrlEncoded
@POST("/patch")
suspend fun insertTracks(
@Field("diff") diff: List<PlaylistInsertOperation>
): PlaylistResponse
发送请求时,字段diff
等于下一个字符串
diff=PlaylistInsertOperation(tracks=[TrackId(id=39117009, albumId=5034819), TrackId(id=89341636, albumId=18635889)])
但需要这样串
diff=[{"tracks":[{"id":"61081889","albumId":9499401}]}]
如何告诉gson
或retrofit
解析没有数据类名的模型?
2条答案
按热度按时间ki0zmccv1#
无法在**@FormUrlEncoded中传递JSON对象。可以使用@Body**注解传递JSON
为请求创建另一个类
nfeuvbwi2#
我用
InsertTracksOperation
的列表创建了一个额外的数据类PlaylistDiffRequest
,并覆盖了调用gson
的toString
函数。第一个
在这种情况下,输出字段将是我所需要的