【问题标题】:Retrofit + Robospice JSON return POJO with Null for nested fieldRetrofit + Robospice JSON 返回 POJO,嵌套字段为 Null
【发布时间】:2016-04-27 11:44:49
【问题描述】:

在我的项目中,我使用 Robospice+Retrofit 与远程服务器交换数据,一切正常,但有一个小问题,- 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 类中的字段 records 等于 null,为什么?

【问题讨论】:

    标签: java gson retrofit pojo robospice


    【解决方案1】:

    您是否尝试使用

    添加 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();
    

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多