无法将xml转换为JAVA类

时间:2017-01-26 15:11:57

标签: java android xml

我有一个xml响应,并希望它转换为java用于Android用途。

<?xml version="1.0" encoding="UTF-8"?>
<title>
    <results_info>
        <page>1</page>
        <total_pages>8</total_pages>
    </results_info>
    <listing_info>
        <id>4</id>
        <image></image>
    </listing_info>
    <listing_info>
        <id>4</id>
        <image></image>
    </listing_info>
    <listing_info>
        <id>4</id>
        <image></image>
    </listing_info>
</title>

这是数据提取的代码用途

public interface ApiService {
    @GET("myUrl")
    Call<MyObject> reqProfile();
}
Api WEB_SERVICE = new Retrofit.Builder()
        .baseUrl("http://www.baseUrl.com/")
        .client(client)
        .addConverterFactory(SimpleXmlConverterFactory.create())
        .build().create(Api.class);

如何为其创建 MyObject 的模型类

1 个答案:

答案 0 :(得分:2)

谢谢开发人员对这个问题感兴趣,最后经过了很多努力,我到了解决这个问题的地方就是这个xml的JAVA类。 我已经创建了三个类来进行有效的工作。

1:MyObject

public class MyObject {
    @Element(name = "results_info")
    private Results_info results_info;
    @ElementList(inline = true)
    List<Listing_info> listing_info;
}

2:Results_info

public class Results_info {
    private String page;
    private String total_pages;
}

3:Listing_info

public class Listing_info {
    @Element(required = false)
    String id;
    @Element(required = false)
    String image;
    @Element(required = false)
}

@Element(required = false)是由于某些时间数据可能为空。

作为对改造的呼叫管理器的回应,我们可以从访问这些类的对象中获取所有数据,就像

一样
...
if (response != null && response.isSuccessful() && response.body() != null) {
    MyObject object = (MyObject) response.body();
    String page = object.getResults_info().getPage();
    List<Listing_info> myList = object.getList();
    String a = myList.get(0).getImage();
}
...

干杯。