Retrofit 에서 XML 해석
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, 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
XML이란 무엇입니까?이것은 저장, 검색 및 공유할 수 있는 형식으로 데이터를 저장하는 강력한 방법입니다. 가장 중요한 것은 XML의 기본 형식이 표준화되어 있기 때문에 시스템이나 플랫폼 간에 로컬 또는 인터넷을 통해 XML을 공유하거나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.