提交JSON负载时Java中的撇号解析问题
我有一个带有getter和setter的JavaPOJO类。在这个类中,我有一个字段应该只接受“撇号”字符。必须拒绝其他字符 下面是代码片段:提交JSON负载时Java中的撇号解析问题,java,json,string,Java,Json,String,我有一个带有getter和setter的JavaPOJO类。在这个类中,我有一个字段应该只接受“撇号”字符。必须拒绝其他字符 下面是代码片段: @Slf4j public final class JsonFormatConstant { public static final String JSON_ALPHANUMERIC_WITH_APOSTROPHE_PATTERN = "^[a-zA-Z0-9'\\s]*$"; } @Data public class UserDetail {
@Slf4j
public final class JsonFormatConstant {
public static final String JSON_ALPHANUMERIC_WITH_APOSTROPHE_PATTERN = "^[a-zA-Z0-9'\\s]*$";
}
@Data
public class UserDetail {
@RegularFormat(regularExpression = JsonFormatConstant.JSON_ALPHANUMERIC_WITH_APOSTROPHE_PATTERN)
private String myDetails;
}
现在,当我尝试使用以下信息点击JSON负载时:
{
"userDetail": {
"myDetails": "myDetails's"
}
}
我得到的答复如下:
{
"userDetail": {
"myDetails": "myDetails's"
}
}
谁能帮我把这些
'代码>字符当我提供一个包含撇号的字符串时?在您没有显示的代码中的某个地方,JSON被HTML转义。找到它所在的位置,并停止HTML转义
是a,尤其是撇号的ASCII码。您必须自己查找字符串被编码的原因,或者必须显示代码的运行部分。查看一些数据字段是不够的。我检查了我的代码,发现下面是HTML转义。。公共类StringEncodingDeserializer扩展JsonDeserializer{@Override public String deserialize(JsonParser p,DeserializationContext ctxt)抛出IOException{if(p.getCurrentToken()!=JsonToken.VALUE_NULL){String str=p.getText().trim();返回HtmlUtils.htmlEscape(HtmlUtils.htmlUnescape(str));}else{return null;}}