Невозможно упорядочить LinkedTreeMap в Java JAXB - PullRequest
0 голосов
/ 05 июня 2019

Я конвертирую массив ответов json в мой Affiliation Объект, а затем преобразую его в XML

Ниже приведен код для разбора JSON в Object

JsonArray json = parser.parse(jsonresponse).getAsJsonArray();  
Gson gson = new Gson();

return gson.fromJson(json, new TypeToken<ArrayList<T>>(){}.getType());

Я могу получить результат в виде List из PersonalAffiliation объектов с каждым PersonalAffiliation объектом в виде связанной карты дерева

public class Affliation {

private List<Personaffiliation> personalaffiliation = new ArralyList<>();

public List<Personaffiliation> getPersonaffiliation() {
  return this.personalaffiliation;
}

public void setPersonaffiliation(List<Personaffiliation> personalaffiliation) {
  this.personalaffiliation = personalaffiliation
}

}

public class Personaffiliation {

private String title;
private String Name;

public void setTitile(String title) {
  this.title = title 
}
public String getTitle() {
  return this.title
}
public void setName(String name) {
  this.name = name 
}
public String getName() {
  return this.name
}   

}

Приведенный ниже вывод - всякий раз, когда я использую xstream, как Xtsream.toXML(affiliation)

<com.example.affiliation>
<personaffiliation>
<com.google.gson.internal.LinkedTreeMap resolves to =“linked hash-map”>
<entry> 
<string>title</string>
<string>Mr.</string>    
</entry>
<entry> 

<string>Name</string>
<string>XYZ</string>    
</entry>
<com.google.gson.internal.LinkedTreeMap>
</personaffiliation>
<personaffiliation>
<com.google.gson.internal.LinkedTreeMap resolves to =“linked hash-map”>
<entry> 
<string>title</string>
<string>Mrs.</string>   
</entry>
<entry> 
<string>Name</string>
<string>ABC</string>    
</entry>
<com.google.gson.internal.LinkedTreeMap>
</personaffiliation>
</com.example.affiliation>

Но мой желаемый результат -

<com.example.affiliation>
<personaffiliation>
<title>Mr.</title>
<name>XYZ</name>    
</personaffiliation>
<personaffiliation>
<title>Mrs.</title>
<name>ABC</name>            
</personaffiliation>
</com.example.affiliation>

Я пытался использовать JAXB (jaxbMarshaller.marshal(affiliation, System.OUT);), но не повезло; Я получаю следующую ошибку

javax.xml.bind.JAXBException: class com.google.gson.internal.LinkedTreeMap nor any of its super class is known in this context

Пожалуйста, помогите.

...