2017-03-02 2 views
0

私はjsonを読んでオブジェクトのVectorに変換するのに問題があります。この問題はAndroid 4.4.2デバイスでのみ発生し、エミュレータでは動作しています。ここでjsonをVectorに変換するには? ClassCastException gson Android 4.4.2

は私のコードです:

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)上のアプリケーションのクラッシュ:ここ

JsonReader reader = new JsonReader(new StringReader(string)); 

AllConversationsObject allConversationsObject = gson.fromJson(reader,AllConversationsObject.class); 

allConversationObject.conversations.get(0) 

はAllConversationsObjectです

:ここ

Fatal Exception: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.myapp.com.Conversation

はbuild.gradleです 0ここで

は、JSONです:

{ 
    "bookmark": "string", 
    "conversations": [ 
    {}, 
    {} 
    ] 
} 

問題何?ありがとう

+0

の配列であることを確信している場合は、List<Object>または任意のList<String>としてそれを宣言する必要がありますか? – Selvin

+0

@Selvinありがとう、私はArrayListを使用することができますが、Vectorには問題がありますか?私はjsonを追加しますが、他のバージョンで作業しているのでJsonに問題はないと100%確信しています – david

+0

あなたの**読者**は何ですか?あなたは文字列ですか、どうやってそれを作成しますか? –

答えて

0

Vectorの代わりにListを使用しますが、私の心配はbookmarkフィールドにあります。

jsonによると、それはいくつかのオブジェクトの配列ですが、Stringとしてそれをモデル化しています。あなたはbookmarkがベクトルのArrayListない理由、それはまた...答えることは不可能だサンプルJSONなしString

+0

ありがとう、ブックマークは文字列です、私は私の質問を編集しました。ごめんなさい !私はそれを確認し、あなたに知らせます。もう一度おねがいします – david

+0

説明してください、なぜ私はベクトルの代わりにリストを使用する必要がありますか? – david

+0

Vectorが同期しているため、リストのパフォーマンスが向上しています – jakubbialkowski

関連する問題