Wird in einigen Fällen JSON-Zeichenfolge mit Jackson parsen.Unerwartetes Zeichen ('' (Code 92)) in 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"}
Above Code funktioniert gut, wenn ich jsonString
Wert übergeben.
In einigen Fällen muss ich ungültige Zeichenfolge Zeichen zu entkommen wie ",'
etc
zu entkommen Ich bin mit ApacheStringEscapeUtils
.
String escapedString = StringEscapeUtils.escapeJson(jsonStirng);
maskierten String Ausgabe
{\"Age\":40,\"Name\":\"Sample User\"}
Als ich mapper
seinen Wurf Unerwartetes Zeichen Ausnahme passieren escapedString.
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(escapedString,JsonNode.class);
Exception
Unexpected character ('\' (code 92)): was expecting double-quote to start field name
bin eigentlich Protokolle ModSecurity Audit Parsen. Response-Body des Audit-Logs hat (html, css, javascript etc) Zeug, deshalb muss ich JSON-String zu entkommen andere weise es bricht das JSON-Format.
Warum entgehen Sie den Anführungszeichen in dieser Zeichenfolge? Die echte Json-Zeichenfolge sollte keine Escape-Zeichen enthalten. Drucken Sie den 'jsonString', den Sie in Ihrer ersten Zeile haben, und Sie werden sehen, dass er intern nicht entwichen ist. – RealSkeptic
Die Frage hat eine sehr verwirrende Beschreibung, es ist nicht einmal compilable und magisch entkommen ändert sich Alter von 40 bis 33. Bitte überprüfen und zeigen echten Code. Aber ich könnte nur annehmen, dass du etwas falsch zitierst. – kan
@kan Tippfehler. Jetzt bin update es guck mal guck mal. –