java jaxb unmarshall xml to map

Java
// An Example of using JAXB to convert a map to XML , written in 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("Lokesh");
    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"));
}
 
Output:
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employees>
    <employeeMap>
        <entry>
            <key>1</key>
            <value>
                <id>1</id>
                <firstName>Lokesh</firstName>
                <lastName>Gupta</lastName>
                <income>100.0</income>
            </value>
        </entry>
        <entry>
            <key>2</key>
            <value>
                <id>2</id>
                <firstName>John</firstName>
                <lastName>Mclane</lastName>
                <income>200.0</income>
            </value>
        </entry>
    </employeeMap>
</employees>
// An example of using JAXB to convert XML to 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());
    }
}
     
Output:
 
Lokesh
Gupta
John
Mclane

Source

Also in Java: