@POST("getOrderStatus")
@Headers("Content-Type:application/json")
Observable<Response> getOrderInfo(@Query("timeStamp") long ts, @Body RequestOrderStatusBean bean);
public class BuildRequestOrderStatusBean {
public int startNum;
public int endNum;
}
RequestOrderStatusBean在Retrofit API getOrderInfo 中是 @Body参数。
RequestOrderStatusBean对象将使用许多相同的数据结构但不同的var名称BuildRequestOrderStatusBean对象构建。
public class RequestOrderStatusBean {
// TODO: How to use BuildRequestOrderStatusBean to build RequestOrderStatusBean object?
/**
{
"arrayA" : { "startNum" : 10, "endNum" : 50 },
"arrayB" : { "startNum" : 100, "endNum" : 200 },
"arrayC" : { "startNum" : 230, "endNum" : 300}
...
*/
}
答案 0 :(得分:1)
使用动态键创建模型类是不可能的,您可以使用 JsonObject 来实现相同的功能(请仔细查看其 JsonObject 而不是JSONObject)
JsonObject arrayA = new JsonObject();
arrayA.addProperty("startNum", 10);
arrayA.addProperty("endNum", 50);
JsonObject arrayB = new JsonObject();
arrayB.addProperty("startNum", 100);
arrayB.addProperty("endNum", 200);
JsonObject object = new JsonObject();
object.add("arrayA", arrayA);
object.add("arrayB", arrayB);
其输出
{
"arrayA":{
"startNum":10,"endNum":50
},
"arrayB":{
"startNum":100,"endNum":200
}
}
这只是一个示例,您可以使用for循环等添加任意数量的对象。
然后在改造中将界面方法更改为 @Body JsonObject bean
@POST("getOrderStatus")
@Headers("Content-Type:application/json")
Observable<Response> getOrderInfo(@Query("timeStamp") long ts, @Body JsonObject bean);
改造将像任何其他模型类一样处理它。