如何将json转换为Vector? ClassCastException gson Android 4.4.2

时间:2017-03-02 10:44:57

标签: android vector gson

我有一个问题是读取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": [
    {},
    {}
  ]
}

问题是什么?谢谢

1 个答案:

答案 0 :(得分:0)

而不是Vector使用List,但我关注的是bookmark字段。

根据json,它是某些对象的数组,但您将其建模为String。如果您确定List<Object>List<String>的数组

,则应将其声明为bookmark或任何String