My xml contains attribute value "0123" which I want to treat as string, after conversion from xml to json as per following code leading zero gets discarded from attribute value.
Used classes
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.json.JSONObject;
import org.json.XML;
//Covert xml to json
org.jdom.Document jdomDocument = new Document();
org.jdom.Element Attribute = new org.jdom.Element("Attribute");
jdomDocument.setRootElement(Attribute);
org.jdom.Element valueElement = new org.jdom.Element("Value");
valueElement.setText(getValue()); // "0123"
// getValue() return anything like boolean,string,long,date, time etc..
root.addContent(valueElement);
String xmlval = new XMLOutputter(Format.getPrettyFormat()).outputString(jdomDocument);
JSONObject xmlJSONObj = XML.toJSONObject(xmlval);
String jsonPrettyPrintString = xmlJSONObj.toString(4);
How to resolve this issue ?
It works :)
Added value in CDATA section so while conversion from xml to json value display as it is
org.jdom.Element valueElement = new org.jdom.Element("Value");
org.jdom.CDATA cdata = new org.jdom.CDATA(getValue());
valueElement.setText(cdata );