2016-04-28 58 views
0

我已经跨越了新的问题来了,我JAXB解组JAXB解组不是解组嵌套列表

鉴于此字符串作为输入

<ruleGroup id="1602" name="TestObject"> 
    <simple column="simple" type="value" operator="equals" value="1" not="true"/> 
</ruleGroup> 

类不解析嵌套列表元素,只有正常的属性(表示为JSON):

{"id":1602,"name":"TestObject"} 

这里有什么问题?我的类别是:

@XmlRootElement(name = "ruleGroup") 
public class RuleGroup { 

    @XmlAttribute(name = "id") 
    public Long id; 
    @XmlAttribute(name = "name") 
    public String name; 

    @XmlElement(name = "simple") 
    public List<SimpleXML> simple; 
} 

public class SimpleXML { 
    @XmlAttribute(name = "column") 
    public String column = null; 
    @XmlAttribute(name = "type") 
    public String type = null; 
    @XmlAttribute(name = "operator") 
    public String operator = null; 
    @XmlAttribute(name = "value") 
    public String value = null; 
    @XmlAttribute(name = "not") 
} 

我解组非常标准:

RuleGroup rule; 
JAXBContext jaxbContext = JAXBContext.newInstance(RuleGroup.class); 
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
StringReader reader = new StringReader(test); 
JAXBElement<RuleGroup> root = jaxbUnmarshaller.unmarshal(new StreamSource(reader), RuleGroup.class); 
rule = (RuleGroup) root.getValue(); 

所以我不知道这个问题可能是什么。关于我在做什么的任何想法都是错误的?

回答

0

运行Java 8中的代码解决了该问题。如果有人想澄清为什么Marshaller受此影响,我很想知道答案