gpt4 book ai didi

java - 使用 spring 进行 Json 正文整数验证

转载 作者:行者123 更新时间:2023-12-02 10:58:50 27 4
gpt4 key购买 nike

我的请求正文如下所示

{
"id": 23,
"no": 23,
"Code": 99,
"badgeNumber": 5,
"empid": "mm108",
"name": "sam",
}

我的整数字段(id,no,code)是可选的,但当传递空字符串时它应该抛出错误,这不是,我将如何验证它。

我不能使用@NotNull,因为它是可选的,它可以为空,但不应接受空字符串或带空格的字符串。

最佳答案

如果您在请求正文中使用 Integer 而不是 int,则会出现句柄 nullempty 字符串。如果您想处理空格任何字符,则需要使用自定义 desereilzer,如下所示:

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;

import java.io.IOException;

public class IntegerDeserialization extends JsonDeserializer<Integer> {
@Override
public Integer deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
try{
return p.readValuesAs(Integer.class).next();
}catch (Exception ex){
}
return null;
}
}

你的请求正文如下:

public class TestReq implements Serializable{

private static final long serialVersionUID = 1L;

@JsonDeserialize(using = IntegerDeserialization.class)
private Integer id;
@JsonDeserialize(using = IntegerDeserialization.class)
private Integer no;
@JsonDeserialize(using = IntegerDeserialization.class)
private Integer code;

//getter setter
}

关于java - 使用 spring 进行 Json 正文整数验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51504483/

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