Vor kurzem habe ich bei der Entwicklung eines Projekts auf ein Problem gestoßen. Ich habe Googlele Gson auf MyeCilpes verwendet, um die JSON -Datei im Projekt erfolgreich zu lesen, und dann das Projekt an Tomcat veröffentlicht und dann dieselbe Methode verwendet. Es fordert "Das System kann den angegebenen Pfad nicht finden"
Platzieren Sie die Datei unter SRC/config/
JsonParser Parser = new JsonParser (); JsonObject Object = (jsonObject) Parser.Parse (New FileReader ("config/test.json"));Nachdem ich nach vielen Artikeln gesucht habe, stellte ich fest, dass das Problem sein sollte, dass nach der Veröffentlichung des Servers der relative Pfad der Datei nicht gefunden wird, sodass ich nur den absoluten Pfad verwenden kann, um den Projekttest unter den WebApps von Tomcat zu finden
Der Weg ist
D:/Programmdateien/Tomcat 8.0/webapps/test/webinf/classes/test.json
Nachdem Sie den Lesepfad geändert haben, können Sie die JSON -Datei lesen. Das Folgende ist die Methode, um den absoluten Pfad in einer separaten Java -Klasse zu erhalten. Da es im Ordner Leerzeichen gibt, habe ich den Raumteil der Räume ersetzt, die verändert wurden.
String path = jsonutil.class.getClassloader (). GetResource ("/test.json"). GetPath (). Ersetzen ("%20", ""); JsonParser Parser = new JsonParser (); JsonObject Object = (jsonObject) Parser.Parse (neuer FileReader (Pfad));Der auf diese Weise gelesene Inhalt ist jedoch verstümmelt. Der Grund kann sein, dass das System -Codierungsformat des Systems nicht mit dem Codierungsformat des Compiler nicht stand
Java.io.file importieren; import Java.io.fileinputstream; Import Java.io.filenotFoundException; Import Java.io.Filereader; Import Java.io.ioException; importieren Java.io.inputstreamreader; com.google.gson.jsonarray; import com.google.gson.jsonioException; import com.google.gson.jsonObject; import com.google.gson.jsonParser; * @return */ public static String getJonstring () {String path = jsonutil.class.getClassloader (). getResource ("/ test.json"). getPath (). Ersetzen ("%20", ""); Datei Datei = neue Datei (Pfad); try {fileReader fileReader = new FileReader (Datei); Reader reader = new InputStreamReader (neuer FileInputStream (Datei), "UTF-8"); int ch = 0; StringBuffer sb = new StringBuffer (); while ((ch = reader.read ())! = -1) {sb.append ((char) ch); } fileReader.CLOSE (); reader.close (); String jSonstring = sb.toString (); Rückgabe jSonstring; } catch (ioException e) {e.printstacktrace (); null zurückkehren; }}}Analysieren Sie dann die erhaltene String von JSON -Format
String jSonstring = jsonUtil.getJonstring (); JsonParser Parser = new JsonParser (); JsonObject Object = (jsonObject) Parser.Parse (JSonstring);
Auf diese Weise können Sie das richtige JsonObject erhalten
Der obige Artikel löst das Problem des Lesens lokaler JSON -Dateien und verstümmelten Codes von Javaweb. Dies ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.