相关疑难解决方法(0)

使用java进行JSON模式验证

我正在为一个返回JSON对象的java webapp编写一些验收测试.我想验证JSON是否返回了针对模式的验证.任何人都可以建议任何工具吗?

java validation schema junit json

25
推荐指数
1
解决办法
3万
查看次数

在 Spring Boot 中 Jackson 之前验证输入

我使用 Spring Boot 构建了一个 REST 端点。JSON被发布到端点。杰克逊转换了JSON给我一个对象。

看起来JSON像这样:

{
    "parameterDateUnadjusted": "2017-01-01",
    "parameterDateAdjusted": "2017-01-02"
}
Run Code Online (Sandbox Code Playgroud)

Jackson 将 转换JSON为基于此类的对象:

public class ParameterDate {

    @NotNull(message = "Parameter Date Unadjusted can not be blank or null")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date parameterDateUnadjusted;
    @NotNull(message = "Parameter Date Adjusted can not be blank or null")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date parameterDateAdjusted;
    private Date parameterDateAdded;
    private Date parameterDateChanged;
}
Run Code Online (Sandbox Code Playgroud)

这一切都很好。我遇到的问题是我想在杰克逊转换数据之前验证数据。例如,如果我发布

{
    "parameterDateUnadjusted": "2017-01-01",
    "parameterDateAdjusted": "2017-01-40"
}
Run Code Online (Sandbox Code Playgroud)

其中parameterDateAdjusted不是有效日期(没有包含 40 …

spring hibernate-validator jackson spring-boot

5
推荐指数
1
解决办法
2740
查看次数

反序列化前的 Spring Boot 验证策略

我正在使用 Spring Boot 来运行 API。我想在反序列化之前验证用户请求参数,以防止 Jackson 抛出反序列化异常。我的想法是最好在没有异常处理的情况下进行验证,但如果您认为我错了,请告诉我。

现在,我制作了一个带有@ControllerAdvice注释的异常处理程序控制器,用于在异常冒泡给用户之前捕获异常,但是有没有办法在杰克逊反序列化之前验证用户输入以检查错误?

我开始尝试使用 spring 验证,但是如果我编写一个自定义验证器并注释请求参数,@Validate验证是否会在反序列化之前进行?春季验证是正确的选择吗?

我研究了使用注释进行验证(JSR 380),但我认为我需要对验证进行更多控制,因此这就是我编写自己的自定义验证器的原因。

我想我可以编写一个自定义反序列化器来调用我的自定义验证器,但这是最好的方法。我正在寻找最佳实践和良好的验证策略。

在此先感谢您的帮助。

deserialization spring-validator spring-boot jackson2

5
推荐指数
2
解决办法
4933
查看次数