2014-10-17 95 views
0

下面是我需要Android應用程序以JSON形式傳遞給REST API的數據的數據結構的描述。特別值得注意的是「響應」字段,其類型各不相同。有時它是一個布爾值,有時是一個整數,或者它可以是一個字符串或一個整數數組。由於各種原因,服務器API不能輕易改變,所以我必須按原樣支持它。支持不同的對象數據類型和改進

如何自定義我的Retrofit用途以迎合數據類型不同的字段?我以前爲Retrofit的休息適配器編寫了類型適配器,這對於處理響應非常有用,但是請求類型適配器的等價物是什麼?

array(
     array(
       question_id => 1, 
       route_id => 1, 
       response => true, 
       timestamp => ‘2014-01-01 20:01:01' 
     ), 
     array(
       question_id => 2, 
       route_id => 1, 
       response => ’this is a string', 
       timestamp => ‘2014-01-01 20:01:01' 
     ), 
     array(
       question_id => 3, 
       route_id => 1, 
       response => 1, 
       timestamp => ‘2014-01-01 20:01:01' 
     ), 
     array(
       question_id => 4, 
       route_id => 1, 
       response => array(
         1234, 
         178, 
         109 
       ), 
       timestamp => ‘2014-01-01 20:01:01' 
     ), 
) 
+0

可能重複【如何處理動態JSON在改造?](http://stackoverflow.com/questions/24279245/how-to-handle-dynamic-json-in-retrofit) – dominik4142 2014-10-17 09:09:45

回答

0

事實證明這非常簡單。如果Retrofit在模型類中傳遞Object類型的對象,它會智能地將它們轉換爲正確的JSON字段類型。

public class MyModel { 

    // Renders to JSON as boolean, int, String etc depending on the underlying class 
    public Object response; 

} 
相關問題