【问题标题】:Exception using colon in XstreamAliasing在 XstreamAliasing 中使用冒号的异常
【发布时间】:2017-02-21 18:11:52
【问题描述】:
我收到一个字符串作为来自服务器的响应。我想使用 XStream 将该字符串转换为 java pojos。我的一些字段的名称中有冒号,例如@XStreamAlias(S:Envelope)
在解析过程中,它显示错误“CannotResolveClassException:Envelope”。但是如果我使用
@XStreamAlias(Envelope)
它工作正常。
如何告诉 Xstream 允许在字段名称中使用冒号(“:”)?
【问题讨论】:
标签:
java
xml-parsing
xstream
【解决方案1】:
它对我的工作:
import java.io.InputStream;
import org.junit.Test;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import lombok.Data;
public class ColonAlias {
@Test
public void smokeTest() {
InputStream file = ColonAlias.class.getResourceAsStream(ColonAlias.class.getSimpleName()+ ".xml");
XStream xStream = new XStream();
xStream.ignoreUnknownElements();
xStream.processAnnotations(Parent.class);
Parent parent = (Parent) xStream.fromXML(file);
System.out.println(parent);
}
@XStreamAlias("parent")
@Data
public class Parent {
@XStreamAsAttribute
private String name;
@XStreamAlias("p:age")
private String age;
}
}
XML:
<?xml version="1.0" encoding="UTF-8"?>
<parent name="Adam">
<p:age>33</p:age>
</parent>
输出:
ColonAlias.Parent(name=Adam, age=33)