2016-03-30 4 views
2

Wie bekomme ich Jacksons XMLMapper, um den Namen des Root-XML-Elements beim Deserialisieren zu lesen?Erhalte Jackson XMLMapper, um den Namen des Root-Elements zu lesen

Ich Deserialisierung Eingabe-XML zu generischer Java-Klasse, LinkedHashMap und dann zu JSON. Ich möchte das Stammelement von XML-Eingabe bei der Deserialisierung in LinkedHashMap dynamisch lesen.

-Code

XmlMapper xmlMapper = new XmlMapper(); 
Map entries = xmlMapper.readValue(new File("source.xml"), LinkedHashMap.class); 
ObjectMapper jsonMapper = new ObjectMapper(); 
String json = jsonMapper.writer().writeValueAsString(entries); 
System.out.println(json); 

XML-Input-

<?xml version="1.0" encoding="ISO-8859-1"?> 
<File> 
    <NumLeases>1</NumLeases> 
    <NEDOCO>18738</NEDOCO> 
    <NWUNIT>0004</NWUNIT> 
    <FLAG>SUCCESS</FLAG> 
    <MESSAGE>Test Upload</MESSAGE> 
    <Lease> 
    <LeaseVersion>1</LeaseVersion> 
    <F1501B> 
     <NEDOCO>18738</NEDOCO> 
     <NWUNIT>0004</NWUNIT> 
     <NTRUSTRECORDKEY>12</NTRUSTRECORDKEY> 
    </F1501B> 
    </Lease> 
</File> 

Tatsächliche Ausgabe

{"NumLeases":"1","NEDOCO":"18738","NWUNIT":"0004","FLAG":"SUCCESS","MESSAGE":"Test Upload","Lease":{"LeaseVersion":"1","F1501B":{"NEDOCO":"18738","NWUNIT":"0004","NTRUSTRECORDKEY":"12"}}} 

Erwartete Ausgabe (Hinweis: Es ist ein Wurzelelement „Datei“ in JSON genannt)

{"File":{"NumLeases":"1","NEDOCO":"18738","NWUNIT":"0004","FLAG":"SUCCESS","MESSAGE":"Test Upload","Lease":{"LeaseVersion":"1","F1501B":{"NEDOCO":"18738","NWUNIT":"0004","NTRUSTRECORDKEY":"12"}}}} 

gibt es wahrscheinlich einige Schalter irgendwo zu setzen. Jede Hilfe soll geschätzt werden.

Antwort

1

Leider gibt es dafür keine Flagge. Dies kann mit einer benutzerdefinierten Implementierung von com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer erfolgen. (Jackson How-To: Custom Deserializers):

+0

Obwohl meine ursprüngliche Frage war, XML in Map zu konvertieren, aber Ihre Antwort war hilfreich, um Einblick zu geben, was ich brauche. Der Code funktioniert perfekt für XML zu JSON Konverter. – Aman

+0

Wenn Sie möchten, können Sie meine Antwort bearbeiten, um Ihre Frage besser widerzuspiegeln ... –

+0

Ich habe meine XML in JSON konvertiert, also habe ich meine Frage entsprechend bearbeitet. Vielen Dank! – Aman

Verwandte Themen