2014-02-24 4 views
1

xml을 사용하여 xml을 객체로 변환하는 방법을 알고 있습니다.이 객체에는 배열 유형 필드 또는 벡터가 포함될 수 있습니다. 하지만 SparseArray로 변환 할 수 있는지 여부는 모르겠습니다. 데모 코드는 다음과 같습니다.xstream을 사용하여 xml 문자열을 SparseArray 객체로 변환하는 방법?

저는 학교가 있고 학교에는 많은 교실이 있으며, 각 교실에는 방 번호가 있습니다. 아주 간단한 모드. 그리고 sparseArray를 사용하는 것이 좋습니다. 나는이 XML 파일의 문자열이있는 경우

<school> 
    <class> 
     <room_number>1</room_number> 
     <student_number>100</student_number> 
    </class> 
    <class> 
     <room_number>2</room_number> 
     <student_number>100</student_number> 
    </class> 
</school> 

:

public class School { 
    private SparseArray<Classroom> classrooms; 
} 

public class Classroom { 
    private roomNumber; 
    //OtherStuff 
} 

지금 나는이 같은 XML 파일이 있습니다. xStream을 내 School 클래스로 변환하도록 설정하려면 어떻게해야합니까? 올바른 키를 sparsearray로 설정 했습니까?

감사합니다.

추가됨 : xStream을 사용하지 않는 다른 방법도 환영합니다!

답변

0

XStream은 변환기와 함께 작동합니다. ArrayList, HashMap 등과 같은 일부 "고전적인"객체 유형의 경우 ... XStream에는 미리 정의 된 Converters가 있습니다. SparseArray는 "클래식"객체가 아니며 XStream에는 빌트인 변환기가 없습니다.

그래서 XStream의 ArrayConverter (com.thoughtworks.xstream.converters.collections.ArrayConverter에 위치)를 기반으로 자신 만의 빌드를 제안합니다. 이 클래스는 매우 간단하며 어려운 작업이 아니어야합니다.