java - 在 XstreamAliasing 中使用冒号时出现异常

标签 java xml-parsing xstream

我收到一个字符串作为服务器的响应。我想使用 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/

相关文章:

java - 将 Json 数组转换为 Java 数组

xml - 使用 xmllint 提取最后一个子元素值

java - 如何使用 Xstream 从 xml 中删除 namespace 前缀?

java - XStream:通用 LinkedHashMap 的问题

java - 使用 Maven 在 Tomcat 中动态运行 WAR,如何添加类路径条目以便只有 Tomcat 可以看到它们?

java - 在 Android 应用程序中使用 ResourceBundle.getBundle() 的正确方法是什么?

java - 随机单词检索的数据结构

c++ - codesynthesis 不解析我的 xml 文件

delphi - libxml2 xmlParseFile无法加载格式正确的XML

java - 如何使用 XStream 反序列化属性和文本节点?