2015-04-29 87 views
2

在我的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類?

+0

你嘗試@GET( 「/ API /產品/ {}的productId /級別/」) 公衆可觀測<名單<名單>> readProductLevels( @Path(「productId」)int productId ); – Stepango

回答