[英]JAXB marshall List<String> JSON?
我正在使用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属性:
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
在list元素上添加@XmlList
批注,还添加其键名( cars
),例如:
{
"prefix:carsList" : {
"cars" : ["car1", "car2", "car3"]
}
}
这是不希望的。
任何帮助表示赞赏。
我认为此编组设置应该可以解决您的问题:
marshaller.setProperty(MarshallerProperties.JSON_WRAPPER_AS_ARRAY_NAME, true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.