package pritom;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by pritom on 5/05/14.
*/
public class HashMapToStringXml {
public static void main(String[] args) {
Map<Object, Object> hashMap = new HashMap<Object, Object>();
hashMap.put("firstName", "Pritom");
hashMap.put("lastName", "Kumar");
Map<Object, Object> secondMap = new HashMap<Object, Object>();
secondMap.put("timeIn", "8:00");
secondMap.put("timeOut", "5:00");
hashMap.put("timing", secondMap);
List<Object> list = new ArrayList<Object>();
list.add(20);
list.add(30);
list.add(40);
list.add(secondMap);
hashMap.put("contents", list);
/* Map to XML and reverse */
String mapToString = objectToString(hashMap);
Map parsedMap = (Map) stringToObject(mapToString);
System.out.println("Map to XML: \n" + mapToString + "\nXML to map:\n" + parsedMap);
/* List to XML and reverse */
String listToString = objectToString(list);
List parsedList = (List) stringToObject(listToString);
System.out.println("List to XML: \n" + listToString + "\nXML to list:\n" + parsedList);
}
public static String objectToString(Object hashMap) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
XMLEncoder xmlEncoder = new XMLEncoder(bos);
xmlEncoder.writeObject(hashMap);
xmlEncoder.close();
return bos.toString();
}
public static Object stringToObject(String string) {
XMLDecoder xmlDecoder = new XMLDecoder(new ByteArrayInputStream(string.getBytes()));
return xmlDecoder.readObject();
}
}
Map to XML:
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_45" class="java.beans.XMLDecoder">
<object class="java.util.HashMap">
<void method="put">
<string>lastName</string>
<string>Kumar</string>
</void>
<void method="put">
<string>contents</string>
<object class="java.util.ArrayList">
<void method="add">
<int>20</int>
</void>
<void method="add">
<int>30</int>
</void>
<void method="add">
<int>40</int>
</void>
<void method="add">
<object class="java.util.HashMap" id="HashMap0">
<void method="put">
<string>timeOut</string>
<string>5:00</string>
</void>
<void method="put">
<string>timeIn</string>
<string>8:00</string>
</void>
</object>
</void>
</object>
</void>
<void method="put">
<string>timing</string>
<object idref="HashMap0"/>
</void>
<void method="put">
<string>firstName</string>
<string>Pritom</string>
</void>
</object>
</java>
XML to map:
{
lastName=Kumar,
contents=[
20,
30,
40,
{
timeOut=5:00,
timeIn=8:00
}
],
firstName=Pritom,
timing={
timeOut=5:00,
timeIn=8:00
}
}
List to XML:
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_45" class="java.beans.XMLDecoder">
<object class="java.util.ArrayList">
<void method="add">
<int>20</int>
</void>
<void method="add">
<int>30</int>
</void>
<void method="add">
<int>40</int>
</void>
<void method="add">
<object class="java.util.HashMap">
<void method="put">
<string>timeOut</string>
<string>5:00</string>
</void>
<void method="put">
<string>timeIn</string>
<string>8:00</string>
</void>
</object>
</void>
</object>
</java>
XML to list:
[20, 30, 40, {timeOut=5:00, timeIn=8:00}]