beans
Bean XML deserialization
With this example we are going to demonstrate how to deserialize a java Bean using the XMLDecoder. The XMLDecoder class is used to read XML documents created using the XMLEncoder and is used just like the ObjectInputStream. In short, to deserialize a java Bean using the XMLDecoder you should:
- Create an xml representation of the java bean.
- Create a simple class, like
Beanclass in the example. It has two String properties and getters and setters for the properties. It has the same properties as the xml doument. - Create a new XMLDecoder, with a new BufferedInputStream that is created reading a new FileInputStream by opening a connection to the xml file.
- Use the
readObject()API method of XMLDecoder to read the next object from the underlying input stream. The result is an object ofBeanclass. - Use
close()API method to close the input stream associated with this stream.
Let’s take a look at the code snippet that follows:
package com.javacodegeeks.snippets.core;
import java.beans.XMLDecoder;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
public class BeanXMLDeserialization {
public static void main(String[] args) throws Exception {
XMLDecoder decoder = new XMLDecoder(new BufferedInputStream(new FileInputStream("in.xml")));
// Deserialize object from XML
Bean bean = (Bean) decoder.readObject();
decoder.close();
System.out.println("Propert1 value: " + bean.getProperty1());
System.out.println("Propert2 value: " + bean.getProperty2());
}
public static class Bean {
// Property property1
private String property1;
// Property property2
private int property2;
public String getProperty1() {
return property1;
}
public void setProperty1(String property1) {
this.property1 = property1;
}
public int getProperty2() {
return property2;
}
public void setProperty2(int property2) {
this.property2 = property2;
}
}
}
Output:
Propert1 value: value1
Propert2 value: 2
Input:
<?xml version="1.0" encoding="UTF-8"?> <java version="1.6.0_05" class="java.beans.XMLDecoder"> <object class="com.javacodegeeks.snippets.core.BeanXMLDeserialization$Bean"> <void property="property1"> <string>value1</string> </void> <void property="property2"> <int>2</int> </void> </object> </java>
This was an example of how to deserialize a java Bean using the XMLDecoder in Java.
