2016-02-01 7 views
0

Моя модель запрос содержит карту и выглядит какМодифицированная + GSON не сериализация HashMap, GSON самостоятельно делает

public class AddRequest { 
public String url; 
public String key; 
public Map<String, String> attributes; 

public AddProductToBasketRequest(String url, String key, Map<String, String> attributes) { 
    this.url = url; 
    this.key = key; 
    this.attributes = attributes; 
} 

}

, когда я печатаю мою модель,

new Gson().toJson(request) 

у меня

{"url":"https://www.net-a-porter.com/lalala","attributes":{"size":"it34"},"key":"agtzfnNm"} 

но ш курица Я посылаю запрос по модернизации, у меня есть пустые атрибуты в журналах

{"attributes": {}, "url": "https://www.net-a-porter.com/lalala", "key": "agtzfnNm"} 

Мой RestAdapter выглядит

public RestAdapter restAdapter = new RestAdapter.Builder() 
     .setRequestInterceptor(new RequestInterceptor() { 
      @Override 
      public void intercept(RequestFacade request) { 
       request.addHeader("Access-Token", token; 
      } 
     }) 
     .setEndpoint(url) 
     .setConverter(new GsonConverter(new GsonBuilder() 
       .excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC) 
       .serializeNulls() 
       .create())) 
     .build(); 

кодекса, сделайте запрос выглядит как

AddInterface restInterface = restAdapter.create(AddInterface.class); 
restInterface.request(id, request, new Callback<Basket>() { 
    @Override 
    public void success(Basket basket, Response r) { 
    } 

    @Override 
    public void failure(RetrofitError error) { 
    } 
}); 
+0

Можете ли вы привести нам пример не «правильной отправки»? Что именно происходит? – Jerry

+0

Эй, Джерри, я проверил с backend dev, и я отправляю пустую карту. Я редактировал свой вопрос. – qbait

+0

Каков код, который делает запрос? – njzk2

ответ

0

Проблема была только очищая HashMap в другой части кода.

0

If это то, что вы хотите отправить по запросу POST

{"url":"https://www.net-a-porter.com/lalala","attributes":{"size":"it34"},"key":"agtzfnNm"} 

вы должны попробовать это:

public class AddRequest { 
public String url; 
public String key; 
public Attributes attributes; 

public AddProductToBasketRequest(String url, String key, Attributes attributes) { 
    this.url = url; 
    this.key = key; 
    this.attributes = attributes; 
} 

public class Attributes { 
    protected String size; 

    // getter & setter 
} 

Поскольку {} должны быть объектом и [] Список

+0

Атрибуты могут быть такими, как: «attributes»: {«size»: «it34», «color»: «blue», «color»: «green»} – qbait

+0

Можете ли вы показать мне свой интерфейс? –

Смежные вопросы