2016-01-01 62 views
-2

我使用傑克遜ObjectMapper通用函數json到POJO?

objectMapper.readValue(jsonString, ResourceTypes.getClassName(resourceType)) 

ResourceTypes.getClassName(resourceType)返回不同類的名字我的JSON字符串轉換爲POJO。

例:Student.class,Hotel.class等

現在我想寫這就像一個泛型函數:

public static T toPOJO(String json, Class<T> type){ 


     try { 

      return JSON_MAPPER.readValue(json, type); 

     } catch (JsonParseException e) { 
      e.printStackTrace(); 
     } catch (JsonMappingException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

但是這給了錯誤未知類型T。如何寫這個函數來返回任何POJO?

回答

0

試試這個,可能是這將工作

public static <T> T toPOJO(String json, Class<T> type) { 

    try { 

     return JSON_MAPPER.readValue(json, type); 

    } catch (JsonParseException e) { 
     e.printStackTrace(); 
    } catch (JsonMappingException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

如有任何問題,請讓我知道。

+0

是的,這消除了編譯錯誤,但不知何故thw函數無法正常工作。其他異常發生在'JSON_MAPPER.readValue(json,type)' –

+0

像,什麼類型的錯誤即將到來? –