Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用“改装”发布对象数组和其他内容_Android_Retrofit2 - Fatal编程技术网

Android 使用“改装”发布对象数组和其他内容

Android 使用“改装”发布对象数组和其他内容,android,retrofit2,Android,Retrofit2,我想发布一个对象数组以及其他类型的formdata 差不多 { country: "us", province: "ny", cities: [{ name: "hello", size: "small" }, { name: "hi", size: "big" }] } 如何在改装中做到这一点?我只需要它声明改型客户端api的部分 @FormUrlEncoded @PUT("user/doStuff") Observable<Void

我想发布一个对象数组以及其他类型的formdata

差不多

{
  country: "us",
  province: "ny",
  cities: [{
    name: "hello",
    size: "small"
  }, {
    name: "hi",
    size: "big"
  }]
}
如何在改装中做到这一点?我只需要它声明改型客户端api的部分

@FormUrlEncoded
@PUT("user/doStuff")
Observable<Void> doStuff(@Field("country") String country, @Field("province") String province,
/* What do i do with cities here?? */);
@FormUrlEncoded
@PUT(“用户/DOSTUF”)
可观测doStuff(@Field(“country”)字符串国家,@Field(“province”)字符串省,
/*我如何处理这里的城市??*/);

您可以尝试类似的方法,但这取决于服务器的配置方式

public class City {
    @SerializedName("city")
    public String city;

    @SerializedName("size")
    public String size;
}

public class ObjectToSend {
    @SerializedName("country")
    public String country;

    @SerializedName("province")
    public String province;

    @SerializedName("cities")
    public List<City> cities;
}


@PUT("user/doStuff")
Observable<Void> doStuff(@Body ObjectToSend object);
公共级城市{
@序列化名称(“城市”)
公共字符串城市;
@序列化名称(“大小”)
公共字符串大小;
}
公共类ObjectToSend{
@序列化名称(“国家”)
公共字符串国家;
@序列化名称(“省”)
公营省;
@序列化名称(“城市”)
公布城市名单;
}
@PUT(“用户/DOSTUF”)
可观测doStuff(@Body ObjectToSend object);

这将起作用。但是,有没有一种方法可以概括地做到这一点呢?说。是否可以将JSONObject[]传递为城市?您在“一般”中的意思是什么?Gson比JsonObject快。如果您使用rxjava进行改型,建议您这样使用,我的示例。它将像一个符咒一样工作。例如。我的“user/doStuff”api实际上将接受不同范围的对象。有没有可能让这种改造也接受像JSONObject这样的泛型类型。然后在我的申请中。我可以调用一些方法将我的对象转换成jsonObject,然后我可以将它们传递给你。改造是更具体的面向对象的。最后,要发送的整个对象将成为一个字符串。