2016-02-03 3 views
2

J'ai classe:Rénovation 2 convert objet JSON sur demande

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

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

J'utilise Retrofit 2 pour envoyer des données au serveur. Req

Méthode dans l'interface:

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

Quand j'utilise ceci:

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(); 
... 

envoyé au serveur

{"id":3,"name"} 

mais j'ai besoin

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

c'est-à-dire le corps d'enveloppe dans {myobject}. Comment réparer?

Répondre

1

La chose la plus simple à faire serait d'enrouler votre réponse autour de l'objet que vous essayez d'envoyer.

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

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