Baru -baru ini, saya mengalami masalah saat mengembangkan proyek. Saya menggunakan Googlede Gson di Myecilpes untuk membaca file JSON di proyek dengan sukses, dan kemudian menerbitkan proyek ke Tomcat dan kemudian menggunakan metode yang sama. Itu akan meminta "sistem tidak dapat menemukan jalur yang ditentukan"
Tempatkan file di bawah src/config/
Jsonparser parser = jsonparser baru (); Jsonobject object = (jsonObject) parser.parse (filereader baru ("config/test.json"));Setelah mencari banyak artikel, saya menemukan bahwa masalahnya haruslah setelah diterbitkan ke server, jalur relatif file tidak ditemukan, jadi saya hanya dapat menggunakan jalur absolut untuk menemukan tes proyek di bawah Webapps of Tomcat
Jalannya adalah
D:/File Program/Tomcat 8.0/Webapps/Test/Web-Inf/Classies/test.json
Setelah memodifikasi jalur baca, Anda dapat membaca ke file JSON. Berikut ini adalah metode untuk mendapatkan jalur absolut di kelas Java yang terpisah. Karena ada spasi di folder, saya mengganti bagian ruang dari ruang yang diubah.
String path = jsonutil.class.getClassLoader (). GetResource ("/test.json"). GetPath (). Ganti ("%20", ""); jsonparser parser = new jsonparser (); JSONObject Object = (jsonObject) parser.parse (filereader baru (path));Namun, konten yang dibaca dengan cara ini kacau. Alasannya mungkin karena format pengkodean sistem tidak konsisten dengan format penyandian kompiler, jadi saya menggunakan streaming untuk membaca file sebagai gantinya
Impor java.io.file; impor java.io.fileinputstream; impor java.io.filenotfoundException; impor java.io.filereader; impor java.io.ioException; impor java.inputStreamreader; impor java.io.reader; impor java.inputstreamreader; impor java.io.reader; com.google.gson.JsonArray;import com.google.gson.JsonIOException;import com.google.gson.JsonObject;import com.google.gson.JsonParser;import com.google.gson.JsonSyntaxException;/** * @author LK */public class JsonUtil {/** * Read the local json file and get the json Format String * @Return */ String statis publik getjsonstring () {string path = jsonutil.class.getClassLoader (). getResource ("/ test.json"). getPath (). REPLACE ("%20", ""); File file = file baru (path); coba {filereader filereader = new filereader (file); Reader reader = new InputStreamReader (FileInputStream baru (file), "UTF-8"); int ch = 0; StringBuffer SB = StringBuffer baru (); while ((ch = reader.read ())! = -1) {sb.append ((char) ch); } filereader.close (); reader.close (); String jsonstring = sb.toString (); mengembalikan jsonstring; } catch (ioException e) {e.printstacktrace (); kembali nol; }}}Kemudian parse string format JSON yang diperoleh
String jsonstring = jsonutil.getjsonstring (); jsonparser parser = jsonparser baru (); JSONObject Object = (jsonObject) parser.parse (jsonstring);
Dengan cara ini Anda bisa mendapatkan JSONObject yang benar
Artikel di atas memecahkan masalah Javaweb membaca file JSON lokal dan kode yang kacau. Ini semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.