带有其他对象列表的Spring Web服务请求和响应映射

保证

我正在使用Spring Web服务,在我的控制器中,我正在使用@RequestBody和@ResponseBody。现在,根据我的理解,这些注释可以将输入的请求转换为您指定的类对象。但是,如果我的类对象引用了其他类对象该怎么办。就像是:

public class Question {

    private String questionText;

    List<Options> options;

    public String getQuestionText() {
        return questionText;
    }

    public void setQuestionText(String questionText) {
        this.questionText = questionText;
    }

    //getters and setters for options


}

传入的请求可能看起来像这样:

{"questionText":"sample question","options":{"option-0":"option0","option-1":"option1","option-2":"option2","option-3":"option3"}}

选项看起来像这样:

public class Option {

    private String option;

    public String getOption() {
        return option;
    }

    public void setOption(String option) {
        this.option = option;
    }



}

如何将其映射?

Sotirios Delimanolis

但是,如果我的类对象引用了其他类对象该怎么办。

这绝对不是问题。Spring使用的Jackson可以提取该信息以生成适当的JSON。

您的Question类充当根JSON的模板。因此,JSON对象将有一个名为的字段questionText,它将是一个JSON字符串,还有一个名为的字段options,它将是一个带有跟随Options模板的JSON对象的JSON数组

因此,这

"options":{"option-0":"option0","option-1":"option1","option-2":"option2","option-3":"option3"}

是无效的。options必须是JSON数组,元素必须是JSON对象,而不是JSON字符串。

它必须看起来像

"options":[{"option":"option1"}, {"option":"option2"}]

匹配您的Options班级。


知道Spring使用Jackson,您可以相对轻松地进行测试

ObjectMapper mapper = new ObjectMapper();
Options o1 = new Options();
o1.setOption("option1");
Options o2 = new Options();
o2.setOption("option2");
Question question = new Question();
question.setOptions(Arrays.asList(o1, o2));
question.setQuestionText("sample question");
System.out.println(mapper.writeValueAsString(question));

产生

{"questionText":"sample question","options":[{"option":"option1"},{"option":"option2"}]}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在junit中模拟亚马逊Web服务请求/响应对象

如何从 dataTaskWithRequest 打印 Web 服务请求和响应

为Web服务的请求和响应对象建模的设计模式

如何使用Qaf Web服务请求调用管理具有多个请求的cookie?

春季restfull服务请求和响应(以文本/计划的形式)

请求和响应对象

调试Web服务请求

Ajax Web服务请求

用于休息服务请求的Spring状态机配置

当服务请求从检查 TGT 有效时?

使用RequestHeader请求和响应同一页面中的其他服务器

将pact用于具有一系列请求和响应的服务

带有自定义HTTP POST请求和响应的jQuery Datatables服务器端分页

如何在没有请求和响应对象的情况下从其余服务或servlet更新UI?

在并行中进行多个 Web 请求和响应解析的有效策略

休息架构-请求和响应对象

带有包含其他对象的列表的Unity GameObject

Spring MVC请求和响应流说明

发送带有新URL的AJAX请求和响应

来自WPF的异步Web服务请求

VBScript / CATScript Web服务请求Unix

Web服务请求中的While语句

显示Javascript Ajax Web服务请求

Spring MVC:发布请求和带有数组的json对象:错误请求

如何在Spring Boot中计算其余Web服务在请求和优先请求之间的时间?

压缩WCF Web服务的请求和响应肥皂消息

在SOAP Web服务中获取请求和响应XML

Spring Boot显示http请求索引但没有其他映射

ipTables,如何阻止IP的端口80上的所有服务请求?