Ich habe eine Hashmap<String, List<Object>>
und ich möchte die Karte mit Jackson marshalieren. Es funktioniert mit JSON perfekt und sieht wie folgt aus:Marshalling hashmap mit Jackson zu XML - falsche Struktur
{
"entriesByTable": {
"Karlsruhe": [
{
"counts": 126,
"hashTag": "#Karlsruhe"
},
{
"counts": 26,
"hashTag": "#jobs"
},
{
"counts": 3,
"hashTag": "#etka16"
}, ...
Aber wenn es meine Struktur kommt wie folgt aussieht XML:
<?xml version="1.0"?>
<Database>
<entriesByTable>
<Karlsruhe>
<hashTag>#Karlsruhe</hashTag>
<counts>127</counts>
</Karlsruhe>
<Karlsruhe>
<hashTag>#jobs</hashTag>
<counts>27</counts>
</Karlsruhe>
<Karlsruhe>
<hashTag>#etka16</hashTag>
<counts>3</counts>
</Karlsruhe> ...
Aber ich will/braucht den gleichen Json-strucutre:
<Database>
<entriesByTable> (mapname)
<Karlsruhe> (key)
<entries> (value (list))
<entry>
<counts>126</counts>
<hashTag>#Karlsruhe</hashtag>
</entry>
</entries>
</Karlsruhe>
</entriesByTable>
</Database>
Meine Klasse:
@JacksonXmlRootElement
public class Database {
private static String DATABASE_LOCATION;
@JsonProperty
private Map<String, List<DatabankEntry>> entriesByTable = new HashMap<>(); ...
Zweite Klasse:
@JacksonXmlRootElement
public class DatabankEntry implements Comparable<DatabankEntry> {
@JsonIgnore
private String tableName;
@JacksonXmlProperty
private String hashTag;
@JacksonXmlProperty
private int counts;
Wäre toll, wenn jemand eine Idee hat. Vielleicht habe ich einen Fehler gemacht mit den Anmerkungen?