XStream不会从XML转换值

问题描述 投票:0回答:1

我正在尝试将XML文件转换为我的2个类,如下所示:

@XStreamAlias("citizenship")
class PersonCitizenship {
    private String citizenship;
}
@XStreamAlias("person")
class Person {
    private Set<PersonCitizenship> citizenships;
    private String citizenship;
    private String citizenshipType;
}

我的XML文件看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <citizenships>
        <citizenship>032</citizenship>
    </citizenships>
    <citizenship>123</citizenship>
    <citizenshipType>2</citizenshipType>
</person>

转换后,我得到Person对象与以下数据:citizenshipType = 2; citizenship = 123和Setcitizenshipsnull场上有citizenship值。为什么会这样?

java xml xstream
1个回答
0
投票

你需要添加:

@XStreamImplicit
private Set<PersonCitizenship> citizenships;

否则XStream需要这样的东西:

<person>
  <citizenships>
    <citizenship>
      <citizenship>032</citizenship>
    </citizenship>
  </citizenships>
  <citizenship>123</citizenship>
  <citizenshipType>2</citizenshipType>
</person>
© www.soinside.com 2019 - 2024. All rights reserved.