com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a value異常


springboot對象返回,一直報生成json異常,經過檢查,發現是自己在做xss防護時對出參進行了json的處理(copy代碼不可取,囧)

異常信息

 

 這里進行了出參處理了,但實際上只要對入參處理就行了,把這個類改成入參處理即可

public class XssStringJsonSerializer extends JsonSerializer<String> {
    @Override
    public Class<String> handledType() {
        return String.class;
    }

    @Override
    public void serialize(String s, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        if (s == null) {
            String encodedValue = StringEscapeUtils.escapeHtml4(s);
            jsonGenerator.writeString(encodedValue);
        }
    }

//入參檢查
public class XssStringJsonSerializer extends JsonDeserializer<String> {
    public XssStringJsonSerializer(Class<String> string) {
        super();
    }

    @Override
    public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException
    {
        String value = jsonParser.getValueAsString();
        if (value != null){
            return StringEscapeUtils.escapeHtml4(value.toString());
        }
        return value;
    }

    @Override
    public Class<String> handledType() {
        return String.class;
    }
}

耽誤了一小時代碼排除,xss防護copy別人代碼的。。。沒理解就用的下場。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM