我可以直接通过改造发送JSON:
@POST("rest/workouts")
Call<CreateWorkoutSuccessAnswer> createWorkout(@NonNull @Body JSONObject jsonObject);
答案 0 :(得分:2)
您可以使用TypedInput
@POST("rest/workouts")
Call<CreateWorkoutSuccessAnswer> createWorkout(@NonNull @Body TypedInput body);
并形成参数:
TypedInput in = new TypedByteArray("application/json", jsonObject.toString().getBytes("UTF-8"));
并使用 作为请求的参数。
答案 1 :(得分:1)
您可以使用GSON JsonObject
类直接发布JSON对象。
Googles JSONObject
不起作用的原因是改造默认情况下使用GSON并尝试将JSONObject参数序列化为POJO。所以你会得到类似的东西:
{
"JSONObject":
{
<your JSON object here>
}
}
如果您正在做的事情要求您使用JSONObject
,那么您可以使用对象的String格式在两者之间进行转换。