私は、APIからデータを読み込むためにRetrofitをSimpleXmlConverterで使用しようとしています。私のインターフェイスでリストを読む<Item>をXML APIのRetrofitで追加
<comments>
<comment>
<text>sample text</text>
</comment>
<comment>
<text>sample text</text>
</comment>
</comments>
方法があります:
私のクラスのコメントは次のようになります。
@Root
class Comment {
@Element
private String text;
}
私はXMLからのコメントのリストを読みたい
@GET("/lastcomments")
ArrayList<Comment> lastComments();
しかし、私がlastComments()を呼び出すと、レトロフィットスロー:
Caused by: retrofit.RetrofitError: java.lang.ClassCastException: libcore.reflect.ParameterizedTypeImpl cannot be cast to java.lang.Class
...
Caused by: retrofit.converter.ConversionException: java.lang.ClassCastException: libcore.reflect.ParameterizedTypeImpl cannot be cast to java.lang.Class
at com.mobprofs.retrofit.converters.SimpleXmlConverter.fromBody(SimpleXmlConverter.java:76)
...
Caused by: java.lang.ClassCastException: libcore.reflect.ParameterizedTypeImpl cannot be cast to java.lang.Class
at com.mobprofs.retrofit.converters.SimpleXmlConverter.fromBody(SimpleXmlConverter.java:72)
がAPIから直接リストを読み出すことが可能とありますか私は、ラッパーを作成する必要があります。
@Root(name="comments")
class CommentsList {
@Element(name="comment", inline=true)
List<Comment> comments;
}