我有一个问题是读取json并将其转换为对象的Vector,奇怪的是这个问题只出现在Android 4.4.2设备上,并且在模拟器上它正在工作。
这是我的代码:
JsonReader reader = new JsonReader(new StringReader(string));
AllConversationsObject allConversationsObject = gson.fromJson(reader,AllConversationsObject.class);
allConversationObject.conversations.get(0)
这是AllConversationsObject:
public class AllConversationsObject {
Vector<Conversation> conversations;
String bookmark;
public Vector<Conversation> getConversations() {
return conversations;
}
public void setConversations(Vector<Conversation> conversations) {
this.conversations = conversations;
}
public String getBookmark() {
return bookmark;
}
public void setBookmark(String bookmark) {
this.bookmark = bookmark;
}
}
conversations.get(0)
上的应用程序崩溃时出现此错误:
致命异常:java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap无法转换为 com.myapp.com.Conversation
这是build.gradle:
compile 'com.google.code.gson:gson:2.3'
这是Json:
{
"bookmark": "string",
"conversations": [
{},
{}
]
}
问题是什么?谢谢
答案 0 :(得分:0)
而不是Vector
使用List
,但我关注的是bookmark
字段。
根据json
,它是某些对象的数组,但您将其建模为String
。如果您确定List<Object>
是List<String>
的数组
bookmark
或任何String