【问题标题】:Retrofit 2 convert Object to Json on request改造 2 根据要求将对象转换为 Json
【发布时间】:2016-02-03 22:02:46
【问题描述】:

我有课:

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

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

我使用 Retrofit 2 向服务器发送数据。要求

方法进入接口:

@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} 中。如何解决?

【问题讨论】:

    标签: java jax-rs retrofit retrofit2


    【解决方案1】:

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

    public class ObjectWrapper {
      @SerializedName("myobject")
      public final MyObject myObject;
    
      public ObjectWrapper(MyObject myObject) {
        this.myObject = myObject;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-03
      • 2019-02-17
      • 2015-08-23
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 2018-06-05
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多