java - 具有两个包装器元素的 Jackson XML ArrayList 输出

标签 java xml jackson marshalling

我在 Jackson 生成的 XML 输出中得到了两个包装器元素。 我只想拥有一个。

我有一个Java bean

@Entity
@Table(name = "CITIES")
@JacksonXmlRootElement(localName = "City")
public class City implements Serializable {

    private static final long serialVersionUID = 21L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @JacksonXmlProperty(isAttribute = true)
    private Long id;

    @JacksonXmlProperty    
    private String name;

    @JacksonXmlProperty
    private int population;

    // getters, setters etc
}

和一个 List 包装器类。

@JacksonXmlRootElement
public class Cities implements Serializable {

    private static final long serialVersionUID = 22L;

    @JacksonXmlProperty(localName = "City")
    @JacksonXmlElementWrapper(localName = "MyCities")
    private List<City> cities = new ArrayList<>();

    public List<City> getCities() {
        return cities;
    }

    public void setCities(List<City> cities) {
        this.cities = cities;
    }
}

我得到这个输出,它有两个包装器元素。我想要 删除其中之一。

<Cities>
  <MyCities>
    <City id="1">
      <name>Bratislava</name>
      <population>432000</population>
    </City>
    <City id="2">
      <name>Budapest</name>
      <population>1759000</population>
    </City>
    <City id="3">
      <name>Prague</name>
      <population>1280000</population>
    </City>
  <MyCities>
</Cities>

其中一个来自ArrayList,一个来自类。如何摆脱包装元素之一?

我想要的是:

<Cities>
    <City id="1">
      <name>Bratislava</name>
      <population>432000</population>
    </City>
    <City id="2">
      <name>Budapest</name>
      <population>1759000</population>
    </City>
    <City id="3">
      <name>Prague</name>
      <population>1280000</population>
    </City>
</Cities>

最佳答案

“Cities”是根元素,而不是包装器。删除实际的包装元素“MyCities”行不通?

添加 @JacksonXmlElementWrapper(useWrapping = false) 也有帮助。

关于java - 具有两个包装器元素的 Jackson XML ArrayList 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48157538/

相关文章:

java - org.springframework.http.converter.HttpMessageNotReadableException : Found strange character

java - struts中如何消除空指针异常?

java - 如何列出kafka集群的所有生产者?

xml - 无法从 https ://site 读取 XML 文件

java - 在 Java 中将 XML DOM 打印到字符串时将前缀传播到子元素

java - 从 xml 中获取数据使用 Xquery with starts with 函数

java - 可以配置 Jackson-Json Mapper 以根据它正在序列化的对象排除属性吗?

java - 使用 Jackson 对 HashMap<MyObject, List<Integer> 进行序列化和反序列化

java - 如何将速度模板加载到 EJB 中以用作邮件模板

java - 我想在 XML 中的 CDATA 内发送 <br> 标记。哪个未在 XSD 内得到验证