2017-03-02 41 views
0
對象

我的REST API返回的JSON字符串格式以下對象的實例:Andiord APK簽署:傑克遜ObjectMapper返回null包含列表

public class ObjectWithList implements Serializable { 
    private long id; 
    private String name; 
    private List<String> contacts; 
} 

我的Android應用程序嘗試使用下面的代碼進行反序列化這一結果:

ObjectMapper mapper = new ObjectMapper(); 
return mapper.readValue(jsonResponse, ObjectWithList.class); 

在調試APK,ObjectMapper能夠將JSON字符串反序列化到這個對象實例成功和列表數據是完整的。但是,在已簽名的apk中,返回的對象包含空列表。即使名稱爲空。 ObjectMapper沒有例外。爲什麼這不起作用? 其他返回沒有任何列表的其他對象的反序列化沒有任何問題。爲什麼包含列表的對象不起作用?

我查了很多SO職位,但找不到任何的投入來解決這個問題。 任何提示/指針非常感謝。

問候, Shobhana

回答

0

在調試APK,ObjectMapper能夠將JSON字符串反序列化到這個對象實例成功和列表數據是完整的。但是,在已簽名的apk中,返回的對象包含空列表

我懷疑您正在使用ProGuard,並且默認情況下已禁用它進行調試構建。您也可以通過在您的build.gradle中設置minifyEnabled false或從ProGuard中排除特定類別來禁用它。

+0

非常感謝Marcin。對不起,延遲迴復。是的,我正在使用ProGuard,我更願意保持啓用狀態。所以我會嘗試第二個建議,並確認是否排除ProGuard中的某些類可解決此問題。 –

+0

我排除了需要從ProGuard反序列化的必要gson類和我的應用程序類,它工作正常!該列表包含Rest API返回的數據。再次感謝Marcin! –

+0

我想知道我的應用程序的其他對象如何在沒有任何問題的情況下進行反序列化?爲什麼只有包含列表的對象顯示這個問題 –