CodesJava

Easy learning with example program codes

JAXB unmarshalling – convert xml into java object example


Unmarshalling is the process of converting xml into java object. The unmarshal() method of JAXB Unmarshaller is used for unmarshalling process.

Steps:

1. Create a pojo class.
2. create JAXB context instance.
3. Create Unmarshaller instance using JAXB context.
4. Call unmarshal() method for unmarshalling process.
5. Process the pojo object.

Example explanation:

Below example have two pojo classes Student and Subject. A Student can have one or more Subject. Pass Student.xml file (generated from previous example) as a parameter in unmarshal() method and cast the return object to Student. Now we have Student object and can process it.

Example:

Student.java

import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
 
/**
 * This class represents a Student.
 * @author codesjava
 */
@XmlRootElement
public class Student {	
	private String name;
	private String rollNo;
	private String className;
	private int age;
	private int id;
	private List<Subject> subject;
 
	//Default constructor
	public Student(){
 
	}
 
	//Parameterised constructor
	public Student(String name, String rollNo, 
			String className, int age, 
                        int id, List<Subject> subject){
		this.name = name;
		this.rollNo = rollNo;
		this.className = className;
		this.age = age;
		this.id = id;
		this.subject = subject;		
	}	
 
	public String getName() {
		return name;
	}
 
	@XmlElement
	public void setName(String name) {
		this.name = name;
	}
 
	public String getClassName() {
		return className;
	}
 
	@XmlElement
	public void setClassName(String className) {
		this.className = className;
	}
 
	public String getRollNo() {
		return rollNo;
	}
 
	@XmlElement
	public void setRollNo(String rollNo) {
		this.rollNo = rollNo;
	}
 
	public int getAge() {
		return age;
	}
 
	@XmlTransient
	public void setAge(int age) {
		this.age = age;
	}
 
	public int getId() {
		return id;
	}
 
	@XmlAttribute
	public void setId(int id) {
		this.id = id;
	}
 
	public List<Subject> getSubject() {
		return subject;
	}
 
	@XmlElement
	public void setSubject(List<Subject> subject) {
		this.subject = subject;
	}
 
}

Subject.java

/**
 * This class represents Address.
 * @author codesjava
 */
public class Subject {	
	private String subjectname;
	private String subjectId;
 
 
	//Default constructor
	public Subject(){
 
	}
 
	//Parameterised constructor
	public Subject(String subjectname, String subjectId){
		this.subjectname = subjectname;
		this.subjectId = subjectId;
	}
 
	public String getSubjectname() {
		return subjectname;
	}
 
	public void setSubjectname(String subjectname) {
		this.subjectname = subjectname;
	}
 
	public String getSubjectId() {
		return subjectId;
	}
 
	public void setSubjectId(String subjectId) {
		this.subjectId = subjectId;
	}
 
}

JAXBTest.java

import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
 
/**
 * This is test class for Unmarshalling.
 * @author codesjava
 */
public class JAXBTest {
  public static void main(String args[]){   
    try {
	//create JAXB context
	JAXBContext context = JAXBContext.newInstance(Student.class);
	//Create Unmarshaller using JAXB context
	Unmarshaller unmarshaller  = context.createUnmarshaller();
 
	Student student = (Student) 
		unmarshaller.unmarshal(new File("D:\\Student.xml"));
 
	//Process the Student object
	System.out.println("Student name: " + student.getName());
	System.out.println("Student rollNo: " + student.getRollNo());
 
	for(Subject Subject: student.getSubject()){
		System.out.println("Subject Name: " 
					+ Subject.getSubjectname());
		System.out.println("Subject Id: " 
					+ Subject.getSubjectId());
	}
    } catch (Exception e) {
	e.printStackTrace();
    }
  }
}

Output:

Student name: jai
Student rollNo: MCA/07/06
Subject Name: Java
Subject Id: 1
Subject Name: Oracle
Subject Id: 2

Download this example.
 
Next Topic: How to generate java class from xml schema xsd using jaxb in eclipse.
Previous Topic: JAXB marshalling – convert java object to xml example using multiple pojo.

Related Topics:

How to build java project using ant in eclipse?
JAXB marshalling – convert java object to xml example.
How to create pdf file in java using iText jar?
Generics class example.
OGNL in struts 2.
Hibernate One-to-One Mapping using xml.
Send inline image in email using JavaMail API.
Quartz 2 JobListener example.

 

Posted in JAXB   


Industrial Training

We offers Placement Oriented Training on Java, Spring, JSF, Hibernate, PHP, AngularJS, Angular 4, PLSQL, Oracle BI Publisher etc. We also provides Online training, please mail us at hr@codesjava.com.

Development

We also provides the Development services for Website Development , Java Development, PHP Development, Android App Development etc. You can contact us on hr@codesjava.com.

Copyright © 2019 CodesJava DMCA.com Protection Status SiteMap Reference: Java Wiki