我在java中使用返回字符串(XML格式的通用列表)的方法創建了web服務。我從Android中使用這個web服務,並且我得到了這個字符串,但是在嘗試反序列化字符串之後,Android模擬器經歷了幾次嘗試之後才崩潰。這是字符串一個例子,我得到:從XML列表反序列化/解組通用列表到Android列表中
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<peliculas>
<pelicula>
<id>18329</id>
<poster>http://cache-cmx.netmx.mx/image/muestras/5368.rrr.jpg</poster>
<titulo>007 Operaci&oacute;n Skyfall</titulo>
</pelicula>
...
</peliculas>
這是Web服務類:
@XmlRootElement
public class Peliculas{
@XmlElement(name="pelicula")
protected List<Pelicula> peliculas;
public Peliculas(){ peliculas = new ArrayList<Pelicula>();}
public Peliculas(List<Pelicula> pe){
peliculas = pe;
}
public List<Pelicula> getList(){
return peliculas;
}
public void add(Pelicula pelicula) {
peliculas.add(pelicula);
}
}
__ _ __ _ __編輯_ __ _ __ _ __ _ __ _ _
好像你不能與Android使用JAXB,並有更好/輕庫這一點。所以我嘗試了簡單的XML。這是方法:
public Peliculas unmarshal(String xml) throws Exception{
Peliculas peliculas = new Peliculas();
Serializer serializer = new Persister();
StringBuffer xmlStr = new StringBuffer(xml);
peliculas = serializer.read(Peliculas.class, (new StringReader(xmlStr.toString())) );
return peliculas;
}
,但我得到這個異常,好像它不能保存對象數據:
11-12 20:30:10.898: I/Error(1058): Element 'Pelicula' does not have a match in class app.cinemexservice.Pelicula at line 3
好像你不能在Android上使用JAXB,並且有更好/更輕的庫...所以我嘗試了Simple XML。 – Pundia