I am trying to convert an xml to json in a specific format by using json library. The xml is converted to json but I don't know how to get the customize one out of it.
Can anyone please tell me some solution for this
My code is as given below
Conversion Code
File file = new File ("D:\\data.xml");
inputStream = new FileInputStream(file);
StringBuilder builder = new StringBuilder();
int ptr = 0;
while ((ptr = inputStream.read()) != -1 )
{
builder.append((char) ptr);
}
String xml = builder.toString();
JSONObject jsonObj = XML.toJSONObject(xml);
System.out.println(jsonObj);
data.xml
<?xml version="1.0"?>
<root>
<data-element name="Parent1" type="parent" index="0">
<data-element name="Pages" index="0" type="text">
<data-element name="Base" index="0" type="text">
<data-element name="Page" index="0" type="text">
<data-element name="Value" index="0" type="text">
<data-content>
<![CDATA[Apple]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Red Color]]>
</data-content>
</data-element>
<data-element name="Page" index="1" type="text">
<data-element name="Value" index="1" type="text">
<data-content>
<![CDATA[Orange]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Orange Color]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Fruits]]>
</data-content>
</data-element>
<data-element name="Base" index="0" type="text">
<data-element name="Page" index="0" type="text">
<data-element name="Value" index="0" type="text">
<data-content>
<![CDATA[Violet]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Beetroot]]>
</data-content>
</data-element>
<data-element name="Page" index="1" type="text">
<data-element name="Value" index="1" type="text">
<data-content>
<![CDATA[Orange]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Carrot]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Vegetables]]>
</data-content>
</data-element>
<data-content type="Child">
<![CDATA[Category1]]>
</data-content>
</data-element>
</data-element>
<data-element name="Parent2" type="parent" index="0">
<data-element name="Pages" index="0" type="text">
<data-element name="Base" index="0" type="text">
<data-element name="Page" index="0" type="text">
<data-element name="Value" index="0" type="text">
<data-content>
<![CDATA[Apple]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Red Color]]>
</data-content>
</data-element>
<data-element name="Page" index="1" type="text">
<data-element name="Value" index="1" type="text">
<data-content>
<![CDATA[Central Processing Unit]]>
</data-content>
</data-element>
<data-content>
<![CDATA[CPU]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Computer]]>
</data-content>
</data-element>
<data-element name="Base" index="0" type="text">
<data-element name="Page" index="0" type="text">
<data-element name="Value" index="0" type="text">
<data-content>
<![CDATA[Mobile]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Android]]>
</data-content>
</data-element>
<data-element name="Page" index="1" type="text">
<data-element name="Value" index="1" type="text">
<data-content>
<![CDATA[Java]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Open Source]]>
</data-content>
</data-element>
<data-content>
<![CDATA[Programming]]>
</data-content>
</data-element>
<data-content type="Child">
<![CDATA[Category2]]>
</data-content>
</data-element>
</data-element>
</root>
Expected Json
{
"Parent1": {
"Category1": {
"Fruits": {
"Red Color": "Apple",
"Orange Color": "Orange"
},
"Vegetables": {
"Beetroot": "Violet",
"Carrot": "Orange"
}
}
},
"Parent2": {
"Category2": {
"Computer": {
"Android": "Mobile"
},
"Programming": {
"Open Source": "Java"
}
}
}
}
Converted json is as given below
{
"root": {
"data-element": [
{
"index": 0,
"name": "Parent1",
"data-element": {
"index": 0,
"name": "Pages",
"data-content": {
"content": "Category1",
"type": "Child"
},
"data-element": [
{
"index": 0,
"name": "Base",
"data-content": "Fruits",
"data-element": [
{
"index": 0,
"name": "Page",
"data-content": "Red Color",
"data-element": {
"index": 0,
"name": "Value",
"data-content": "Apple",
"type": "text"
},
"type": "text"
},
{
"index": 1,
"name": "Page",
"data-content": "Orange Color",
"data-element": {
"index": 1,
"name": "Value",
"data-content": "Orange",
"type": "text"
},
"type": "text"
}
],
"type": "text"
},
{
"index": 0,
"name": "Base",
"data-content": "Vegetables",
"data-element": [
{
"index": 0,
"name": "Page",
"data-content": "Beetroot",
"data-element": {
"index": 0,
"name": "Value",
"data-content": "Violet",
"type": "text"
},
"type": "text"
},
{
"index": 1,
"name": "Page",
"data-content": "Carrot",
"data-element": {
"index": 1,
"name": "Value",
"data-content": "Orange",
"type": "text"
},
"type": "text"
}
],
"type": "text"
}
],
"type": "text"
},
"type": "parent"
},
{
"index": 0,
"name": "Parent2",
"data-element": {
"index": 0,
"name": "Pages",
"data-content": {
"content": "Category2",
"type": "Child"
},
"data-element": [
{
"index": 0,
"name": "Base",
"data-content": "Computer",
"data-element": [
{
"index": 0,
"name": "Page",
"data-content": "Red Color",
"data-element": {
"index": 0,
"name": "Value",
"data-content": "Apple",
"type": "text"
},
"type": "text"
},
{
"index": 1,
"name": "Page",
"data-content": "CPU",
"data-element": {
"index": 1,
"name": "Value",
"data-content": "Central Processing Unit",
"type": "text"
},
"type": "text"
}
],
"type": "text"
},
{
"index": 0,
"name": "Base",
"data-content": "Programming",
"data-element": [
{
"index": 0,
"name": "Page",
"data-content": "Android",
"data-element": {
"index": 0,
"name": "Value",
"data-content": "Mobile",
"type": "text"
},
"type": "text"
},
{
"index": 1,
"name": "Page",
"data-content": "Open Source",
"data-element": {
"index": 1,
"name": "Value",
"data-content": "Java",
"type": "text"
},
"type": "text"
}
],
"type": "text"
}
],
"type": "text"
},
"type": "parent"
}
]
}
}