我有一个Android应用程序,它使用RestFUL Web服务作为其后端。我已经实施了Retrofit来发送注册数据,但它确实有效。 现在我需要获得大量的对象,但它还没有工作。我注意到Gson只解析了一些属性(名称,类型,位置),但大多数都不是(特别是id)。 Gson如何实际解析它?我真的必须实现它吗?从我的想法,我只需要匹配的属性的名称,它将为我做所有的工作。
这就是我构建Gson和RestAdapter的方式:
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.registerTypeAdapter(Date.class, new DateTypeAdapter())
.create();
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(PACURL.getHost())
// .setLogLevel(RestAdapter.LogLevel.FULL)
.setConverter(new GsonConverter(gson))
.build();
我的要求定义:
@POST("/pois/{category}")
void getPois(@Path("category") String category,
@Query("lat") Double lat,
@Query("long") Double lon,
Callback<WrapperPois> callback);
和实际的电话:
NetworkInterface nt = restAdapter.create(NetworkInterface.class);
nt.getPois(category,
location.getLatitude(),
location.getLongitude(), callback);
我使用Retrofit期待放松我的工作,所以如果我必须自己编写反序列化,请告诉我。任何关于Gson默认转换器如何工作的评论都非常感激。
谢谢!
My WrapperPois类:
public class WrapperPois {
public ArrayList<Poi> results;
static class MyResponse {
public ArrayList<Poi> array;
}
}
Poi包含:
protected String objectId;
protected String url;
protected String type;
...