簡體   English   中英

JAXB馬歇爾清單 <String> JSON?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM