在我的Android應用程序,我用Retrofit來形容內部API:如何使用Retrofit和Jackson閱讀嵌套的JSON數組?
@Provides
@Singleton
ProductsService provideProductsService() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(
PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
RestAdapter.Builder restAdapterBuilder = new RestAdapter.Builder()
.setConverter(new JacksonConverter(objectMapper));
return restAdapterBuilder
.setEndpoint(Endpoints.newFixedEndpoint("http://192.168.1.1"))
.build()
.create(ProductsService.class);
爲了讀取ProductLevels我創建了以下接口:
public interface ProductsService {
@GET("/api/products/{productId}/levels/")
public Observable<List<ReadProductLevelsResponse>> readProductLevels(
@Path("productId") int productId
);
}
這裏是一個被服務的JSON字符串由後端:
[
[
1427378400000,
553
],
[
1427382000000,
553
]
]
當我嘗試讀取JSON da TA在空ReadProductLevelsResponse類出現以下錯誤:
com.fasterxml.jackson.databind.JsonMappingException:re[email protected]11ae0f16:在[來源無法反序列化ReadProductLevelsResponse的情況下進行START_ARRAY令牌;行:1,柱:2](參考通過鏈:java.util.ArrayList中[0])
我怎樣才能讀取JSON數據到ReadProductLevelsResponse類?
你嘗試@GET( 「/ API /產品/ {}的productId /級別/」) 公衆可觀測<名單<名單>> readProductLevels( @Path(「productId」)int productId ); –
Stepango