2016-02-03 2 views
2

У меня есть класс:дооснащения 2 новообращенного объект в Json по запросу

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

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

я использую дооснащение 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"}} 

i.e. wrap body в {myobject}. Как исправить?

ответ

1

Проще всего сделать, чтобы обернуть свой ответ вокруг объекта, который вы пытаетесь отправить.

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

    public ObjectWrapper(MyObject myObject) { 
    this.myObject = myObject; 
    } 
} 
Смежные вопросы