我收到一个字符串作为服务器的响应。我想使用 XStream 将该字符串转换为 java pojo。我的一些字段的名称中带有冒号,例如@XStreamAlias(S:Envelope)
在解析过程中,显示错误“CannotResolveClassException:Envelope”。但如果我使用
@XStreamAlias(Envelope)
效果很好。 如何告诉 Xstream 在字段名称中允许使用冒号(“:”)?
最佳答案
它对我有用:
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)
关于java - 在 XstreamAliasing 中使用冒号时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42374852/