小编MrM*_*agi的帖子

JAXB:Unmarshal异构数组

我正在尝试使用具有以下结构的MOXy json解组:

[
  {
    "page": 1,
    "pages": 1
  },
  [
    {
        "indicator": {
            "id": "IC.BUS.EASE.XQ",
            "value": "Ease of doing business index"
        },
        "country": {
            "id": "1A",
            "value": "Arab World"
        },
        "value": "113.952380952381",
        "date": "2014"
    },
    ...
    ]
]
Run Code Online (Sandbox Code Playgroud)

数组的第一个元素是一个对象,第二个元素是另一个复杂元素数组.我真的在SO和MOXy文档中搜索了一个类似的例子而没有任何成功.

我将json文档映射到JAVA类的最佳尝试如下.根类是CountryDataResponse(getters&setters ommited):

@XmlRootElement
@XmlType(propOrder ={"paginationInfo", "dataArray"})
public class CountryDataResponse {
    private DataArray dataArray;
    private PaginationInfo paginationInfo;
}
Run Code Online (Sandbox Code Playgroud)

(我可以看到这会失败,因为它不是一个数组,但我完全迷失了.)

PaginationInfo类为根数组的第一个元素建模,DataArray类包装第二个元素,即第二个元素数组.另外,我为每个Data元素中的复杂类型创建了Indicator和Country类.

主要类别(指标和国家省略):

@XmlRootElement(name = "paginationInfo")
@XmlAccessorType(XmlAccessType.FIELD)
public class PaginationInfo {

    private int page;
    private int pages;
}
Run Code Online (Sandbox Code Playgroud)
@XmlRootElement( name = "dataArray" )
public …
Run Code Online (Sandbox Code Playgroud)

java json jaxb unmarshalling moxy

6
推荐指数
1
解决办法
484
查看次数

标签 统计

java ×1

jaxb ×1

json ×1

moxy ×1

unmarshalling ×1