我正在尝试将JSON
字符串转换为Objects
(附件)的列表,但是当我尝试这样做时,却得到了NPE
。
List<Attachment> attachments = new ArrayList<>();
Timber.d("EMPTY------>"+dbResponse.get(i).getAttachments().isEmpty());
Timber.d("SIZE------>"+dbResponse.get(i).getAttachments().length());
for(...){
if(dbResponse.get(i).getAttachments().length()!=0) //has attachments?
{
//transforms the string into list of attachments
Type listType = new TypeToken<List<Attachment>>(){}.getType();
attachments = new Gson().fromJson(dbResponse.get(i).getAttachments(), listType);
for(int j=0; j<attachments.size() ; j++) {...}
}
我在attachments.size()
上看到错误。
错误是:
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
at com.rd.ch.repository.AppDataManager.lambda$findAllMessages$1$AppDataManager(AppDataManager.java:177)
at com.rdev.chatapp.repository.AppDataManager$$Lambda$1.apply(Unknown Source)
木材正在返回EMPTY->false
和Size->4
。
我在代码上做错了什么?谢谢。
答案 0 :(得分:0)
您想将dbResponse.get(i).getAttachments()
读为json,但看起来它不是有效的json,并且Gson().fromJson
返回null
。
打印出dbResponse.get(i).getAttachments()
,您将看到要读为Json的内容。