[英]How to alias the data type using XStream?
我想將對象轉換為xml,其中需要為String數據類型提供別名。 例如:
public class ArrayTest
{
private int id=4;
public String area[];
public void setArea(String ar[])
{
area = ar;
}
}
對象到xml轉換類如下:
public class Test
{
public static void main(String args[])
{
String area[] = {"ABC","XYZ","PRQ"};
ArrayTest at = new ArrayTest();
at.setArea(area);
Xstream stream = new XStream(new staxDriver());
stream.alias("response",ArrayTest.class);
System.out.println(stream.toXML(at));
}
}
我得到的輸出為:
<?xml version="1.0" ?>
<response>
<id>4</id>
<area>
<string>ABC</string>
<string>XYZ</string>
<string>PRQ</string>
</area>
</response>
但我想要輸出為:
<?xml version="1.0" ?>
<response>
<id>4</id>
<area>
<code>ABC</code>
<code>XYZ</code>
<code>PRQ</code>
</area>
</response>
我是XStream的新手,請幫幫我
您可以使用:
stream.addImplicitArray(ArrayTest.class, "area", "code");
我認為這可能有效:
首先為area
添加吸氣劑
public class ArrayTest {
private int id = 4;
private String[] area;
public void setArea(String ar[]) {
area = ar;
}
public String[] getArea() {
return area;
}
}
然后添加一個NamedArrayConverter
轉換器:
public static void main(String args[]) {
String area[] = { "ABC", "XYZ", "PRQ" };
ArrayTest at = new ArrayTest();
at.setArea(area);
XStream stream = new XStream();
stream.alias("response",ArrayTest.class);
stream.registerConverter(new NamedArrayConverter(at.getArea().getClass(), null, "code"));
System.out.println(stream.toXML(at));
}
這是輸出:
<response>
<id>4</id>
<area>
<code>ABC</code>
<code>XYZ</code>
<code>PRQ</code>
</area>
</response>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.