首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Springboot Restful API XML响应根元素显示为列表

Springboot Restful API XML响应根元素显示为列表
EN

Stack Overflow用户
提问于 2018-08-30 01:56:38
回答 1查看 222关注 0票数 1

我尝试以XML响应的形式返回调查列表。我可以得到以下回复:

代码语言:javascript
复制
<List>
    <item>
        <title>My Favorite Survey</title>
        <description>Description of the Survey</description>
        <surveyId>Survey1</surveyId>
        <questions>
            <question>...</question>
            <question>...</question>
        </questions>
    </item>
</List>

但是,我想显示如下响应:

代码语言:javascript
复制
<surveys>
    <survey>
        <title>My Favorite Survey</title>
        <description>Description of the Survey</description>
        <surveyId>Survey1</surveyId>
        <questions>
            <question>...</question>
            <question>...</question>
        </questions>
    </survey>
</surveys>

下面是我的POJO类:

代码语言:javascript
复制
@JacksonXmlRootElement(localName="survey")
public class Survey {
    @JacksonXmlProperty(localName = "surveyId")
    private String id;
    private String title;
    private String description;

    @JacksonXmlElementWrapper(localName = "questions")
    @JacksonXmlProperty(localName = "question")
    private List<Question> questions;
    // getters and setters

}

控制器类:

代码语言:javascript
复制
@RestController    
class SurveyController {
    @Autowired
    private SurveyService surveyService;

    @GetMapping(path = "/surveys")
    public List<Survey> retrieveQuestions() {
        return surveyService.retrieveAllSurveys();
    }
}

在我的情况下,@JacksonXmlRootElement(localName="survey")似乎不起作用,我可以做些什么才能让list显示为调查。请指导我如何使用我的自定义标记名来代替列表和项目。

EN

回答 1

Stack Overflow用户

发布于 2018-08-30 03:52:39

对于XML内容,我建议编写一个XSD,然后使用以下Maven插件生成JAXB类:

代码语言:javascript
复制
<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <generatePackage>com.mycompany.myproject.jaxb</generatePackage>
            </configuration>
        </execution>
    </executions>                                 
    <configuration>
        <args>
            <arg>-mark-generated</arg>
        </args>
        <locale>en</locale>
    </configuration>
</plugin>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52083564

复制
相关文章

相似问题

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