Retrofit 2根据请求将Object转换为Json

时间:2016-02-03 22:02:46

标签: java jax-rs retrofit retrofit2

我上课了:

@XmlRootElement(name = "myobject")
@XmlAccessorType(XmlAccessType.FIELD)
public class MyObject {

    @XmlElement
    private Long id;
    @XmlElement
    private String name;
    ...
}

我使用Retrofit 2将数据发送到服务器。 REQ

接口方法:

@POST("/update")
Call<Response> updateObject(@Body MyObject myObject);

当我使用它时:

retrofit = new Retrofit.Builder()
    .baseUrl(API_URL)
    .addConverterFactory(GsonConverterFactory.create())
    .build();
ServerAPI api = getRetrofit().create(ServerAPI.class);
Call<Response> call = api.updateObject(myObject);
...
retrofit2.Response response = call.execute();
...

发送到服务器

{"id":3,"name"}

但我需要

{myobject:{"id":3,"name"}}

即。在{myobject}中包裹身体。怎么解决?

1 个答案:

答案 0 :(得分:2)

最简单的方法是将响应包装在您尝试发送的对象周围。

public class ObjectWrapper {
  @SerializedName("myobject")
  public final MyObject myObject;

  public ObjectWrapper(MyObject myObject) {
    this.myObject = myObject;
  }
}