gpt4 book ai didi

java - Jackson 验证输入 json 对象

转载 作者:行者123 更新时间:2023-12-01 18:18:50 26 4
gpt4 key购买 nike

我有一个休息服务,如果我有一个使用 application/json 的示例 POST 方法,并且该方法的参数是另一个描述 require json 字段的类,有没有办法让 jackson 验证进入方法前输入json?这是一些代码:

@PUT
@Consumes("application/json")
public UserDataResourceObject login(UserResourceObject userResourceObject)
{
Query query = getEm().createNamedQuery("User.authorize");
if (userResourceObject == null)
{
throw new WebApplicationException(Response.Status.BAD_REQUEST);
}
query.setParameter("username", userResourceObject.getUsername());
query.setParameter("password", Utility.getMD5Value(userResourceObject.getPassword()));
Exception e = null;
try
.................

UserResourceObject 描述了这个结构:

{
"username" : "admin",
"password" : "123456"
}

我希望如果我更改 Jackson 上面的 json 结构,就会抛出一个示例 400(错误请求)的异常。我怎样才能做到这一点?

最佳答案

您可以使用 Bean Validation (JSR 303) 来验证您收到的数据。您有http://bval.apache.org/http://hibernate.org/validator/实现。

那么你可以这样做:

@PUT
@Consumes("application/json")
public UserDataResourceObject login(@Valid UserResourceObject userResourceObject) {

关于java - Jackson 验证输入 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28146042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com