1

我正在尝试对字符串进行 json 解码,但出现以下错误:

 "message":"error while converting json to class","level":"ERROR","level_value":40000,"stack_trace":"com.fasterxml.jackson.databind.JsonMappingException: Illegal unquoted character ((CTRL-CHAR, code 31)): has to be escaped using backslash to be included in string value\n at [Source: { \"key\": \"abc No.\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F\u001F 106,xyz}

我怀疑 json 中可能有一个 ctrl-char 字符(/n)。我想知道如何在可能存在此 ctrl-char 的任何地方添加额外的转义字符,以便我的代码在解码 json 时不会中断。

Json解码代码:

public static Object jsonDecode(String s, Class c) {
        Object u = null;
        if(s!=null) {
            try {
                u = objectMapper.reader(c)
                        .readValue(s);
            } catch (Exception e) {
                logger.error("error while converting json to class", e);
            }
        }
        return u;
    }
4

0 回答 0