Я использую JAXB (MoXY) для сортировки/десортировки моих данных как в XML, так и в JSON.
У меня есть List<String>
, завернутый в класс, который я хочу отправить по сети:
@XmlRootElement(name = "carList")
public class CarsList {
@XmlValue
protected List<String> cars;
public List<String> getCars() {
if (cars == null) {
cars = new ArrayList<String>();
}
return cars;
}
public void addCar(String carId) {
if (cars == null) {
cars = new ArrayList<String>();
}
if (carId != null) {
this.cars.add(car);
}
}
public void setCars(List<String> cars) {
this.cars = cars;
}
}
XML приходит, как и ожидалось:
<prefix:carList xmlns:prefix="http://www....some prefix namespace...">car1 car2 car3</prefix:carList>
Но JSON, который я получаю, это:
{
"prefix:carList" : "car1 car2 car3"
}
Мои свойства маршаллера JSON:
marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json");
marshaller.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, true);
marshaller.setProperty(MarshallerProperties.JSON_MARSHAL_EMPTY_COLLECTIONS, false);
Но я хочу, чтобы мой JSON выглядел так:
{
"prefix:carList" : [ "car1", "car2", "car3" ]
}
Я новичок в JAXB. Какие изменения мне нужны, чтобы сделать мой JSON желаемым? Я готов изменить класс моего домена CarsList
Добавление аннотации @XmlList
к элементу списка также добавляет его имя ключа (cars
), например:
{
"prefix:carsList" : {
"cars" : ["car1", "car2", "car3"]
}
}
что нежелательно.
Любая помощь приветствуется.