Retrofit 에서 XML 해석

6506 단어 xmlretrofit
개술
retrofit 프레임 워 크 는 현재 점점 더 많이 사용 되 고 있 습 니 다. 주로 OkHttp, json 등 우수한 프레임 워 크 를 통합 하고 있 습 니 다. retrofit 해석 json 은 대부분의 사람들 이 할 수 있 을 것 이 라 고 믿 지만 XML 이 라면 이 블 로 그 는 XML 을 어떻게 해석 하 는 지 배 웁 니 다.
해석 XML
1. 우선 xml 형식의 문자열 을 정의 합 니 다. 여 기 는 로 컬 에 쓰 겠 습 니 다.
     String xml = "<Citys>
" + "\t<city>
" + "\t\t<id>1</id>
" + "\t\t<name> </name>
" + "\t</city>
" + "\t<city>
" + "\t\t<id>2</id>
" + "\t\t<name> </name>
" + "\t</city>
" + "</Citys>" ;

위의 \ t 는 주로 줄 을 바꾼다.
2. 해석 시작
    /** *   XML * @param xml     xml    * @param clazz       * @return      */
    public static  Object getXMLObject(String xml, Class<?> clazz) {

        Object o = null;
        Strategy strategy = new AnnotationStrategy();
        Serializer serializer = new Persister(strategy);
        try {
            o = serializer.read(clazz, xml);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return o;
    }

위 에 문자열 과 해석 할 클래스 를 전달 하고 마지막 으로 되 돌려 줍 니 다.
3. 마지막 으로 우 리 는 xml 에 대응 하 는 자바 비 안 을 써 야 합 니 다.위의 문자열 은 관 계 를 잘 볼 수 없 기 때문에 그림 을 봅 니 다.
그림 에서 알 수 있 듯 이 먼저 하나의 Citys 류 를 정의 한 다음 에 Citys 류 안에 집합 이 있 고 집합 안에 City 류 가 저장 되 어 있 으 며 City 류 안에 두 가지 속성 이 있 습 니 다. 주의: 이 두 가지 속성 은 xml 와 일치 해 야 합 니 다.

    public class Citys {

    @ElementList(entry = "city" , inline = true)
    private List<City> citys ;

    public Citys() {
    }

    public void setCitys(List<City> citys) {
        this.citys = citys;
    }

    public List<City> getCitys() {
        return citys;
    }

    @Override
    public String toString() {
        return "Citys{" +
                "citys=" + citys +
                '}';
    }
}


    public class City {
    @Element
    private String id ;
    @Element
    private String name;

    public City(){

    }

    public City(String id, String name) {
        this.id = id;
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    @Override
    public String toString() {
        return "City{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                '}';
    }
}

        :
 city:Citys{citys=[City{id='1', name='  '}, City{id='2', name='  '}]}

  • ElementList: 。
  • Element:
  • inline=true:ElementList , ElementList , false 。
  • required = false: ,xml , @Element , @Element required = false 。
  • @Root(strict = false):xml , , @(Root) strict = false @Root(strict = false) 。

: bean get/set/ /toString() , 。

Ok, 。

좋은 웹페이지 즐겨찾기