繁体   English   中英

如何控制Spring RequestBody将JSON请求主体转换为对象?

[英]How can I control Spring RequestBody converting JSON request body to object?

Spring @RequestBody注释会自动将JSON请求主体转换为Object。 转换过程对我们来说似乎是一个黑匣子。 但是,我需要控制转换过程以使预期的无效输入失败。

看下面的代码。 JSON请求正文包含带有大写字母的“ id”字符串。 当Spring自动将其转换为UUID对象时,它将成功。

// the controller
public class IndexController {
    ...
    public ResponseEntity<Void> postIndexes(@ApiParam(value = INDEXES_DESC, required = true) @Valid @RequestBody @Size(min = 1, max = 2000) List<Index> indexes) {
        ...
    }
    ...
}

// the Index class
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Index implements Serializable {
    @ApiModelProperty(value = ID_DESC, example = SINGLE_ID)
    @NotNull
    private UUID                id;
    ...
}

// the input JSON request body
[
    {
        ...
        "id": "40336c2b-591a-4472-a270-111111A46339",
        ...
    }
]

但是,我希望这种大写字母输入失败。 不确定@RequestBody注释是做什么的。 看起来它使用UUID.fromString()将String输入转换为UUID对象。 但是我想对转换过程进行一些控制以使其失败。

您也可以检查属性编辑器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM