gpt4 book ai didi

java - 如何将xml绑定(bind)到bean

转载 作者:数据小太阳 更新时间:2023-10-29 02:16:18 26 4
gpt4 key购买 nike

在我的应用程序中,我通过 HTTP 使用一些 API,它以 xml 的形式返回响应。我想自动将数据从 xml 绑定(bind)到 bean。

例如绑定(bind)以下 xml:

<xml>
<userid>123456</userid>
<uuid>123456</uuid>
</xml>

到这个 bean(可能在注释的帮助下)

class APIResponce implement Serializable{

private Integer userid;
private Integer uuid;
....
}

最简单的方法是什么?

最佳答案

我同意使用 JAXB。由于 JAXB 是一种规范,您可以从多种实现中进行选择:

这是使用 JAXB 的方法:

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class APIResponce {

private Integer userid;
private Integer uuid;

}

与以下演示类一起使用时:

import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

public class Demo {

public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(APIResponce.class);

File xml = new File("input.xml");
Unmarshaller unmarshaller = jc.createUnmarshaller();
APIResponce api = (APIResponce) unmarshaller.unmarshal(xml);

Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(api, System.out);
}
}

将生成以下 XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xml>
<userid>123456</userid>
<uuid>123456</uuid>
</xml>

关于java - 如何将xml绑定(bind)到bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3729572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com