2016-01-21 7 views
1

В моем проекте я использую Robospice + Retrofit для обмена данными с сервером remoute, все работает идеально, но с одной проблемой litle, - каждый из POJO-объектов имеет вложенное поле null каждый раз.Retrofit + Robospice JSON возвращает POJO с Null для вложенного поля

POJO класс

public class Snapshot { 

@SerializedName("records_count") 
private Integer recordsCount; 

@SerializedName("created") 
private String created; 

@SerializedName("modified") 
private String modified; 

@SerializedName("records") 
private Records records; 

@SerializedName("database_id") 
private String databaseId; 

@SerializedName("revision") 
private Integer revision; 

@SerializedName("size") 
private Integer size; 

public Integer getRecordsCount() { 
    return recordsCount; 
} 

public void setRecordsCount(Integer recordsCount) { 
    this.recordsCount = recordsCount; 
} 

public String getCreated() { 
    return created; 
} 

public void setCreated(String created) { 
    this.created = created; 
} 

public String getModified() { 
    return modified; 
} 

public void setModified(String modified) { 
    this.modified = modified; 
} 

public Records getRecords() { 
    return records; 
} 

public void setRecords(Records records) { 
    this.records = records; 
} 

public String getDatabaseId() { 
    return databaseId; 
} 

public void setDatabaseId(String databaseId) { 
    this.databaseId = databaseId; 
} 

public Integer getRevision() { 
    return revision; 
} 

public void setRevision(Integer revision) { 
    this.revision = revision; 
} 

public Integer getSize() { 
    return size; 
} 

public void setSize(Integer size) { 
    this.size = size; 
} 

}

дооснащения класс

public class RetrofitSpiceService extends RetrofitGsonSpiceService { 

private static final String TAG = "RetrofitSpiceService"; 

private static final String AUTHORIZATION_HEADER = "Authorization"; 
private static final String USER_AGENT_HEADER = "User-Agent"; 
private static final String USER_AGENT = "Cloud API Android Client Example/1.0"; 

@Override 
protected String getServerUrl() { 
    return "https://my.cloud-api.net"; 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
    addRetrofitInterface(DataSyncAPI.class); 
} 

@Override 
protected RestAdapter.Builder createRestAdapterBuilder() { 

    RestAdapter.Builder builder = new RestAdapter.Builder(); 

    builder.setRequestInterceptor(new RequestInterceptor() { 

     @Override 
     public void intercept(RequestFacade request) { 

      request.addHeader(USER_AGENT_HEADER, USER_AGENT); 
      request.addHeader(AUTHORIZATION_HEADER, SharedPreferencesManager.getRegistrationToken(getApplicationContext())); 

     } 

    }); 

    builder.setEndpoint(getServerUrl()); 
    builder.setConverter(getConverter()); 

    return builder; 
} 

}

Итак, поле записи в классе Snapshot равной нулю , почему?

ответ

0

Пробовали ли вы добавить конвертер GSON с

Gson gson = builder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create(); 
RestAdapter restAdapter = new RestAdapter.Builder() 
.setEndpoint("http://localhost/api") 
.setConverter(new GsonConverter(gson)).build();