如何使用xstream将xml字符串转换为SparseArray对象?

时间:2014-02-24 08:10:21

标签: xml sparse-matrix xstream

我知道如何使用xStream将xml转换为对象,该对象可能包含数组类型字段或向量。但我不知道是否可以使用它转换为SparseArray。这是一个演示代码:

说我有一所学校,一所学校有很多教室,每个教室都有一个房间号码。非常简单的模式。并且很好地使用sparseArray。

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

public class Classroom {
    private roomNumber;
    //OtherStuff
}

现在我有一个像这样的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>

如果我有这个xml文件的字符串。如何设置xStream将其转换为我的School类?将正确的密钥设置到sparsearray中?

谢谢!

补充:欢迎任何其他不使用xStream的方法!

1 个答案:

答案 0 :(得分:0)

XStream适用于转换器。对于一些“经典”对象类型,如ArrayList,HashMap,... XStream有一堆预定义的转换器。 你的SparseArray不是java“经典”对象,而XStream没有内置转换器。

所以,我建议你根据XStream的ArrayConverter(位于com.thoughtworks.xstream.converters.collections.ArrayConverter)构建自己的。这门课非常简单,不应该是一项艰巨的任务。