我在启动Kafka消费者时收到异常.
org.apache.kafka.clients.consumer.OffsetOutOfRangeException:偏移超出范围,没有为分区配置重置策略{test-0 = 29898318}
我正在使用Kafka版本9.0.0和Java 7.
在某些情况下,我在使用 Jackson 解析 JSON 字符串时遇到问题。
String jsonString = "{\"Age\":40, \"Name\":\"Sample User\"}";
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(jsonString,JsonNode.class);
System.out.println(jsonstirng)
{"Age":40, "Name":"Sample User"}
Run Code Online (Sandbox Code Playgroud)
当我传递该值时,上面的代码运行良好jsonString
。
在某些情况下,我需要转义无效的字符串字符,例如",'
等
为了逃避我正在使用Apache StringEscapeUtils
。
String escapedString = StringEscapeUtils.escapeJson(jsonStirng);
Run Code Online (Sandbox Code Playgroud)
转义字符串输出
{\"Age\":40,\"Name\":\"Sample User\"}
Run Code Online (Sandbox Code Playgroud)
当我将转义字符串传递给mapper
它时,会引发意外字符异常。
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(escapedString,JsonNode.class);
Run Code Online (Sandbox Code Playgroud)
例外
Unexpected character ('\' (code 92)): was expecting double-quote to start field name
Run Code Online (Sandbox Code Playgroud)
实际上,我正在解析 ModSecurity 审核日志。审核日志的响应正文包含(HTML、CSS、javascript 等)内容,这就是为什么我需要转义 JSON 字符串,否则它会破坏 JSON 格式。