将复杂的XML转换为Java对象

时间:2019-03-11 14:38:19

标签: java xml deserialization

我有一个xml,我想将由特定标签的子元素形成的子xml保存到字符串中。 这是一个xml示例:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SampleDTO>
    <id>1</id>
    <someList>
        <someObject>
            <amount>32</amount>
            <id>1</id>
            <someDescription>I am a description</someDescription>
        </someObject>
        <someObject>
            <amount>66</amount>
            <id>2</id>
            <someDescription>I am another description</someDescription>
        </someObject>
        <someObject>
            <amount>78</amount>
            <id>13</id>
            <someDescription>Guess what? I am a description</someDescription>
        </someObject>
    </someList>
    <otherList>
        <otherObject>
            <flag>true</flag>
            <id>1</id>
            <otherDescription>Oh nice, a description</otherDescription>
        </otherObject>
    </otherList>
</SampleDTO>

我想要(例如传递“ someList”)将sub-xml元素和值保存到String中,因为接下来我将其反序列化为Java对象

2 个答案:

答案 0 :(得分:0)

您的Java类/对象至少应具有这3个实例var:

private int amount
private int id
private String description

然后使用一些xml解析库(例如jdom2),对于您迭代通过的每个<someObject>标签,初始化您的类的新对象,并为其分配从xml解析的值(数量/ id / description),然后将每个新创建的对象添加到列表或数组等中。

答案 1 :(得分:0)

有许多可用的开源XML处理程序包。 我喜欢杰克逊。 这是指向Baeldung Article about Jackson XML

的链接

摘要是这样的:

  1. 向您的POM添加Jackson依赖项。
  2. 创建一个表示您的xml结构的对象结构。
  3. 创建一个XmlMapper。
  4. 使用XmlMapper。