映射模型类

我创建了一个模型类 Employee.java,它有一些常见的字段。
我想构建可以解析对象映射的代码,其中键是序列代码,值是 Employee对象本身。

@XmlRootElement(name = "employee")
@XmlAccessorType (XmlAccessType.FIELD)
public class Employee 
{
	private Integer id;
	private String firstName;
	private String lastName;
	private double income;

	//Getters and Setters
}
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement (name="employees")
@XmlAccessorType(XmlAccessType.FIELD)
public class EmployeeMap {

	private Map<Integer, Employee> employeeMap = new HashMap<Integer, Employee>();
	public Map<Integer, Employee> getEmployeeMap() {
		return employeeMap;
	}
	public void setEmployeeMap(Map<Integer, Employee> employeeMap) {
		this.employeeMap = employeeMap;
	}
}

JAXB Maven 依赖

要运行 JAXB 示例,我们需要添加如下运行时依赖项。

<dependency>
	<groupId>com.sun.xml.bind</groupId>
	<artifactId>jaxb-core</artifactId>
	<version>2.2.8-b01</version>
</dependency>
<dependency>
	<groupId>com.sun.xml.bind</groupId>
	<artifactId>jaxb-impl</artifactId>
	<version>2.2-promoted-b65</version>
</dependency>

解组 XML 到 映射示例

java 将 xml 转换为 Java map 对象

private static void unMarshalingExample() throws JAXBException 
{
	JAXBContext jaxbContext = JAXBContext.newInstance(EmployeeMap.class);
	Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
	EmployeeMap empMap = (EmployeeMap) jaxbUnmarshaller.unmarshal( new File("c:/temp/employees.xml") );

	for(Integer empId : empMap.getEmployeeMap().keySet())
	{
		System.out.println(empMap.getEmployeeMap().get(empId).getFirstName());
		System.out.println(empMap.getEmployeeMap().get(empId).getLastName());
	}
}
JAXB示例

JAXB(Java Architecture for XML Binding)允许 Java 开发人员将 Java 类映射到 XML 表示。

JAXB 提供了两个主要功能:将 Java 对象编组为 XML 的能力和相反的功能,例如:将 XML 解组回 Java 对象。
JAXB 主要用于为应用程序实现 Web 服务或者任何其他此类客户端接口,其中数据需要以 XML 格式而不是 HTML 格式传输,HTML 格式是 Web 浏览器等可视化客户端的默认格式。

下面的例子将对 Map 对象(HashMap)进行编组和解组。
这些映射对象通常表示一些简单键到复杂数据的映射。

之路教程 https://onitr oad .com

Marshal Map to XML 示例

将 java 映射编组或者转换为 xml 表示的 Java 示例。
在下面的示例代码中,我首先在控制台中编写员工地图,然后在文件中编写。

public static void main(String[] args) throws JAXBException 
{
	HashMap<Integer, Employee> map = new HashMap<Integer, Employee>();

	Employee emp1 = new Employee();
	emp1.setId(1);
	emp1.setFirstName("JackLi");
	emp1.setLastName("Gupta");
	emp1.setIncome(100.0);

	Employee emp2 = new Employee();
	emp2.setId(2);
	emp2.setFirstName("John");
	emp2.setLastName("Mclane");
	emp2.setIncome(200.0);

	map.put( 1 , emp1);
	map.put( 2 , emp2);

	//Add employees in map
	EmployeeMap employeeMap = new EmployeeMap();
	employeeMap.setEmployeeMap(map);

	/ Marshalling example */

	JAXBContext jaxbContext = JAXBContext.newInstance(EmployeeMap.class);
	Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
	jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
	jaxbMarshaller.marshal(employeeMap, System.out);
	jaxbMarshaller.marshal(employeeMap, new File("c:/temp/employees.xml"));
}
日期:2020-09-17 00:09:40 来源:oir作者:oir