I am converting the original XML input to JSON, and I am having problems with the desired output structure (lists do not display correctly). The imported XML structure may differ from the example below, so using POJO and simply annotating is not possible. An example of XML input below:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <gang> <id>435dfb3f-1129-4375-b0f9-09955d7434cc</id> <name>Brew Crews</name> <members> <member> <member>d3433b1c-a93d-4af1-b698-89fcd921e48d</member> <dateJoined/> </member> <member> <member>8ac9f5bc-5710-4cb1-a75d-839e211f0286</member> <dateJoined/> </member> </members> <anthem/> <logo>http://localhost:8080/cloud/master-index-record/raw/58338b91-2390-44a7-ac31-581c5dd921e1</logo> </gang>
I use Jackson to convert XML to JSON (XML is already a string and is represented by the variable 'result')
XmlMapper xmlMapper = new XmlMapper(); Object entry = xmlMapper.readValue(result, Object.class); ObjectMapper jsonMapper = new ObjectMapper(); return jsonMapper.writeValueAsString(entry);
The following JSON is produced:
{ "id": "435dfb3f-1129-4375-b0f9-09955d7434cc", "name": "Brew Crews", "members": { "member": { "member": "8ac9f5bc-5710-4cb1-a75d-839e211f0286", "dateJoined": null } }, "anthem": null, "logo": "http://localhost:8080/cloud/master-index-record/raw/58338b91-2390-44a7-ac31-581c5dd921e1" }
My problem is that the members members should be grouped into a JSON array as follows:
"members":[{"member":blah,"dateJoined":null},{"member":blah2,"dateJoined":null}]
But they are not ... is there any specific configuration that needs to be done for an XML map or Mapper object to achieve these desired results?
source share