2015-07-04 34 views
0

我試圖反序列化這個XML陣列與SimpleFramework這個XML陣列,和我一直運行到這個問題:反序列化與SimpleFramework

07-04 16:14:59.840 1681年至1681年/ com.sampleapp d/SampleApp:org.simpleframework.xml.core.ElementException:元素「圖像」不在線路具有類com.todocodepathapp.api.models.Images匹配5

這是正在從返回的XML陣列API:

<response> 
<data> 
    <images> 
     <image> 
      <url>http://24.media.tumblr.com/tumblr_lmdpfs0UcO1qbe5pxo1_1280.jpg</url> 
      <id>9ik</id> 
      <source_url>http://thecatapi.com/?id=9ik</source_url> 
     </image> 
     <image> 
      <url>http://25.media.tumblr.com/tumblr_m6nl30dMm21qz59j6o1_1280.jpg</url> 
      <id>MTU4NTM4NA</id> 
      <source_url>http://thecatapi.com/?id=MTU4NTM4NA</source_url> 
     </image> 
     <image> 
      <url>http://25.media.tumblr.com/tumblr_m1e6655aqv1qz85pko1_500.jpg</url> 
      <id>avd</id> 
      <source_url>http://thecatapi.com/?id=avd</source_url> 
     </image> 
     <image> 
      <url>http://24.media.tumblr.com/tumblr_lz7cx55fOS1qbd47zo1_1280.jpg</url> 
      <id>cu8</id> 
      <source_url>http://thecatapi.com/?id=cu8</source_url> 
     </image> 
    </images> 
</data> 
</response> 

這些都是我使用的模型類(我有我不應該使用Images.java一種預感,並且應該只有三類):

Response.java

@Root(name = "response") 
public class Response { 

    @Element(name = "data") 
    private Data mData; 
    public Data getData() { 
    return mData; 
    } 

} 

Data.java

@Root(name = "data") 
public class Data { 

    @Element(name = "images") 
    private Images mImages; 
    public Images getImages() { 
     return mImages; 
    } 

} 

Images.java

@Root(name = "images") 
public class Images { 

    @ElementList(entry = "image") 
    private List<Image> mImageList; 
    public List<Image> getImageList() { 
     return mImageList; 
    } 

} 

Image.java

@Root(name = "image") 
public class Image { 

    @Element(name = "url") 
    private String mUrl; 
    public String getUrl() { 
     return mUrl; 
    } 

    @Element(name = "id") 
    private String mId; 
    public String getId() { 
     return mId; 
    } 

    @Element(name = "source_url") 
    public String mSourceUrl; 
    public String getSourceUrl() { 
     return mSourceUrl; 
    } 

} 

我應該如何來實現這一點?我認爲添加條目@ElementList(entry = "image")的註釋會解決這個問題嗎?

回答

0

我的預感是正確的,我說幹就幹,刪除類Images.java並添加以下注釋到我的Data.java模型類:

@ElementList(name = "images", entry = "image") 
private List<Image> mImages; 
public List<Image> getImages() { 
    return mImages; 
} 

注意的一點是,我改變@Root@Element的圖像模型類:

@Element(name = "image") 
public class Image { 

    @Element(name = "url") 
    private String mUrl; 
    public String getUrl() { 
     return mUrl; 
    } 

    @Element(name = "id") 
    private String mId; 
    public String getId() { 
     return mId; 
    } 

    @Element(name = "source_url") 
    public String mSourceUrl; 
    public String getSourceUrl() { 
     return mSourceUrl; 
    } 

}