2017-02-06 3 views
0

Wir haben eine korrekte und saubere JSON-Zeichenfolge in einer Textspalte in Postgres, Diese Zeichenfolge ist eine Art von Konfigurationsdaten selten geändert.Steuerzeichen in resultSet Zeichenfolge

Die JSON-Zeichenfolge wird aus Java-Code abgerufen, der in einer Webanwendung auf Wildfly über die jdbi-Abfrage ausgeführt wird.

Nur auf Linux-Systemen wir die Anwesenheit von Steuerzeichen (?) Beim Lesen der Zeichenfolge von resultSet (mit einem getString ("param_value")). Here Der JSON-Text wurde nach dem Lesen von resultSet gespeichert.

Irgendwelche Vorschläge?

+0

Wie haben Sie verifiziert, dass es "korrekt und sauber" ist? Zeigen Sie außerdem die Quelle an, die Sie zum Speichern des JSON-Texts verwenden, der das Ergebnis liefert. – RealSkeptic

Antwort

0

Ich weiß nicht, warum das passiert, aber ich habe den Code im Komponententest mit den gleichen Ergebnissen in der Anwendungsserverumgebung (Windows ok, Linux ko) getestet. Desweiteren ändert sich nichts nach dem postgres jdbc driver und dem jdbi driver upgrade.

Als Abhilfe Probleme zu vermeiden, wenn json Parsen, eine Zeichenfolge ersetzen von Steuerzeichen durchgeführt wird:

String jsonString = resultSet.getString("param_value") 
         .replaceAll("[\\x00-\\x1F\‌​\x7F\\x0A\\xfffd\\x2‌​0a]",""); 

Die Folge von Steuerzeichen wurde zunächst von this post genommen, erweiterte dann basierend auf json Parsen Ausnahmemeldungen.

Verwandte Themen