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
Bean
class 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 ofBean
class. - 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.