2017-08-30 1 views
0

Meine API ‚Werte‘ senden ist:Wie ein JSONArray ohne den Schlüssel

public class AddOrderRequestVO { 

    @SerializedName("extras") 
    public JSONArray itens;it 

} 

Ich erhalte diesen Körper:

public interface API { 

    @PUT("pedido/{lanche}") 
    Observable<OrderResponseVO> createOrder(@Path("lanche") Integer lanche, @Body AddOrderRequestVO request); 

} 

ich diese POJO als Körper meiner Retrofit PUT-Anforderung verwendet haben in meinem Server:

{ extras: { values: [ 2, 2, 2 ] } }

aber ich brauche diese:

{ extras: [ 2, 2, 2 ] }

Wie geht das?

+0

Können Sie nicht einfach den JSON parsen und dann die Struktur verarbeiten? – Carcigenicate

+0

Die Idee von Retrofit + Gson ist dieser Prozess abstrakt. –

+0

Anstatt das Objekt mit "extra" zu initialisieren, initialisiere es mit "values" – iTurki

Antwort

0

Verwenden JSONArray nicht, stattdessen ein normales Array

0

public JSONArray itens; 

mit

public List<Integer> itens; 

Oder eine Liste Ersetzen verwenden wie auch immer geartete Sie zu und von der json zu serialisiert brauchen . Es wird Ihnen das gewünschte Ergebnis im JSON geben und es wird viel einfacher sein, mit Ihrem Java-Code zu arbeiten. GSON wird die Konvertierung von JSONArray in JSON zur Liste durchführen, ohne dass Sie etwas tun müssen.