首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swagger不解析@XmlElementWrapper注释

Swagger不解析@XmlElementWrapper注释
EN

Stack Overflow用户
提问于 2016-01-25 21:18:46
回答 2查看 858关注 0票数 3

我使用Swagger为我的基于jax-rs的API生成文档。在我的一个模型中,我有以下属性:

代码语言:javascript
复制
@XmlElementWrapper(name = "clip_list")
@XmlElement(name = "clip")
public List<Clip> mClips = new ArrayList<Clip>();

但是,在UI中生成的JSON模型如下:

代码语言:javascript
复制
"clip": [
    {
    "duration":"",
    "url":"",
    "thumb":"",
    }
]

所以很明显,XmlElementWrapper注解没有被解析。如何强制Swagger正确嵌套元素?

输出应如下所示:

代码语言:javascript
复制
"clip_list": [
    {
    "duration":"",
    "url":"",
    "thumb":"",
    }
]
EN

回答 2

Stack Overflow用户

发布于 2016-01-25 23:01:29

输出看起来是正确的。有关更多详细信息,请查看Swagger存储库中的此issue

您可以尝试使用@ApiModelProperty注释来操作模型属性的元数据,如下所示:

代码语言:javascript
复制
@XmlElement(name = "clip")
@ApiModelProperty(value = "clip_list")
@XmlElementWrapper(name = "clip_list")
public List<Clip> mClips = new ArrayList<Clip>();

有关@ApiModelProperty应用编程接口的更多详细信息,请查看javadocs

票数 0
EN

Stack Overflow用户

发布于 2016-01-28 14:31:59

解决了这个问题。只需从swagger依赖项中排除以下依赖项。

代码语言:javascript
复制
          <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.jaxrs</groupId>
                    <artifactId>jackson-jaxrs-json-provider</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-client</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-server</artifactId>
                </exclusion>
          </exclusions>

在排除这些之后,我能够让注释正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34993641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档