public class ForceStringDeserializer extends JsonDeserializer<String> {
@Override
public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
if (jsonParser.getCurrentToken() == JsonToken.VALUE_NUMBER_INT) {
throw deserializationContext.wrongTokenException(jsonParser, JsonToken.VALUE_STRING, "Attempted to parse int to string but this is forbidden");
}
return jsonParser.getValueAsString();
}
}
2条答案
按热度按时间rqqzpn5f1#
为
java.lang.String
注册的自定义反序列化程序肯定可以工作,并允许您阻止转换。反序列化程序将直接通过JsonParser
查看内容,以便它们可以检测基础标记类型。这将帮助您:
你可以找到更多的信息here。
cgvd09ve2#
添加到application.properties
或者配置对象Map器(如bean)