자바 빈 과 Xml 상호 변환 - XStream
Xstream 은 OXmapping 기술 로 XML 파일 의 직렬 화 를 처리 하 는 프레임 워 크 입 니 다. 자바 빈 을 직렬 화하 거나 XML 파일 을 반 직렬 화 할 때 다른 보조 클래스 와 맵 파일 이 필요 하지 않 아 XML 직렬 화 를 복잡 하지 않 게 합 니 다.Xstream 도 자바 빈 을 Json 또는 역 직렬 화 할 수 있어 사용 하기에 매우 편리 하 다.
특징:
간소 화 된 API;맵 없 는 파일;고성능, 저 메모리 점용;깔끔 한 XML;수정 대상 필요 없 음;내부 개인 필드 를 지원 합 니 다. private 속성 에 set / get 방법 을 요구 하지 않 습 니 다.클래스 는 기본 구조 기 가 필요 없습니다.
Xstream 주석 상용 지식:
주해
역할 목표
@ XStreamAlias ("message") 별명 주석
클래스
@ XStreamImplicit 집합 무시
집합 필드
@ XStreamAsAttribute 필드 를 노드 속성 으로 변환
필드
@ XStreamOmitField 속성 무시
필드
@ XStreamConverter (Single ValueCalendarConverter. class) 주입 변환기
대상
compile('com.thoughtworks.xstream:xstream:1.4.7')
//xml
268216
34.055596
-118.113722
16
//JavaBean
// , , :com.common.entry.BusStation
@XStreamAlias("bus_station")
public class BusStation implements Serializable {
//
@XStreamAlias("aid")
private String aid;
// xml
private Double latitude;
private Double longitude;
private String name;
@XStreamAlias("station_city")
private String stationCity;
@XStreamOmitField()
private String time;
}
public class Test
{
public static void main(String[] args)
{
BusStation bean=new BusStation();
XStream xstream = new XStream(new DomDriver());
xstream.ignoreUnknownElements();
xstream.processAnnotations(BusStation.class);
//XML
String xml = xstream.toXML(bean);
System.out.println(xml);
//XML
bean=(Person)xstream.fromXML(xml);
System.out.println(bean);
}
}
xml 와 bean 의 맵 핑
1. 주 해 를 통 해 비 추기
//
@XStreamAlias("person")
//
@XStreamAlias("username")
private String name;
// XML
@XStreamImplicit()
private List addressList = new ArrayList();
2. api 를 통 해 비 추기
//
xstream.alias("person",Person.class);
stream.alias("address1", Address.class);
//
stream.aliasField("username", Person.class, "name");
// xml
stream.addImplicitCollection(Person.class, "addressList");
// name Person
// @XStreamAsAttribute()
stream.useAttributeFor(Person.class, "name");
// XML , xml
xStream.addImplicitCollection(Person.class, "addressList");
// Person
stream.processAnnotations(new Class[]{People.class, Place.class});
3. 기본 네 임 스페이스 는 기본 XML 네 임 스페이스 를 정의 하여 하위 요소 의 시작 표시 에 접 두 사 를 사용 하지 않 아 도 됩 니 다.그의 문법 은 다음 과 같다.
다음 XML 문 서 는 table 요소 에 과일 정 보 를 포함 하고 있 습 니 다.
Apples
Bananas
4. XStreamImplicit 주 해 는 collection 이나 map 형식의 구성원 변수 에서 데 이 터 를 xml 같은 차원 의 요소 로 변환 해 야 할 때 이 구성원 변수 에서 이 주 해 를 사용 할 수 있 습 니 다.
@XStreamImplicit(itemFieldName = "List_Element")
private List jps;
xml :
man
woman
XStreamImplicit 주석 은 두 가지 속성 이 있 습 니 다:
도구 클래스
// xml object
public static T toBean(String xmlStr, Class cls) {
if (TextUtils.isEmpty(xmlStr) || xmlStr.contains("Error")) {
return null;
}
try {
XStream xstream = new XStream(new DomDriver());
//
xstream.ignoreUnknownElements();
// Annotations
xstream.processAnnotations(cls);
T obj = (T) xstream.fromXML(xmlStr);
return obj;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
레 퍼 런 스
http://blog.csdn.net/pushme_pli/article/details/7829621
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.