Возникает проблема при разборе строки JSON с Джексоном в некоторых случаях.Неожиданный символ ('' (код 92)) в jackson
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"}
Над кодом хорошо работает, когда я прохожу jsonString
значение.
В некоторых случаях мне нужно, чтобы избежать недопустимых символов строки, как ",'
и т.д.
Для побега я использую ApacheStringEscapeUtils
.
String escapedString = StringEscapeUtils.escapeJson(jsonStirng);
Сбежал выход Строка
{\"Age\":40,\"Name\":\"Sample User\"}
Когда я прохожу escapedString к mapper
его броска Неожиданное исключение символов.
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(escapedString,JsonNode.class);
Исключение
Unexpected character ('\' (code 92)): was expecting double-quote to start field name
На самом деле Am разборе журналов аудита ModSecurity. Тело ответа в журнале аудита имеет (html, css, javascript и т. Д.) Материал, поэтому мне нужно избегать строки JSON, иначе он разрывает формат JSON.
Почему вы избегаете цитат в этой строке? Настоящая строка Json не должна иметь экранов. Распечатайте 'jsonString', который у вас есть в вашей первой строке, и вы увидите, что внутри он не имеет возможности экранирования. – RealSkeptic
Вопрос имеет очень запутанное описание, он даже не компилируется и не ускользает от магических изменений. Возраст от 40 до 33. Проверьте и покажите реальный код. Но я мог только предположить, что вы цитируете что-то неправильно. – kan
@kan typo ошибка. Теперь обновите его, любезно посмотрите. –