【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 2021-02-07
      • 2014-01-29
      • 2011-05-13
      • 2011-04-17
      • 2018-09-07
      • 2015-01-24
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      相关资源
      最近更新 更多