في الآونة الأخيرة ، واجهت مشكلة عند تطوير مشروع. لقد استخدمت Googlede Gson على Myecilpes لقراءة ملف JSON في المشروع بنجاح ، ثم نشرت المشروع إلى Tomcat ثم استخدم نفس الطريقة. سيطالب "النظام لا يمكن العثور على المسار المحدد"
ضع الملف ضمن src/config/
jsonparser parser = new jsonparser () ؛ jsonobject object = (jsonobject) parser.parse (new fileReader ("config/test.json")) ؛بعد البحث عن العديد من المقالات ، وجدت أن المشكلة يجب أن تكون أنه بعد النشر على الخادم ، لم يتم العثور على المسار النسبي للملف ، لذلك لا يمكنني استخدام المسار المطلق إلا للعثور على اختبار المشروع تحت WebApps of Tomcat
المسار
D:/Program Files/Tomcat 8.0/WebApps/Test/Web-INF/Classes/Test.json
بعد تعديل مسار القراءة ، يمكنك القراءة إلى ملف JSON. فيما يلي طريقة الحصول على المسار المطلق في فئة Java منفصلة. نظرًا لوجود مسافات في المجلد ، استبدلت جزء المساحة من المساحات التي تم تغييرها.
string path = jsonutil.class.getClassLoader (). getResource ("/test.json"). getPath (). استبدال ("٪ 20" ، "") ؛ Jsonparser parser = new jsonparser () ؛ jsonobject object = (jsonobject) parser.parse (new fileReader (path)) ؛ومع ذلك ، فإن المحتوى يقرأ بهذه الطريقة مشوهة. قد يكون السبب هو أن تنسيق ترميز النظام غير متوافق مع تنسيق ترميز المترجم ، لذلك استخدمت دفقًا لقراءة الملف بدلاً من ذلك
استيراد java.io.file ؛ استيراد java.io.fileinputStream ؛ استيراد java.io.filenotfoundexception ؛ استيراد java.io.filereader ؛ استيراد java.io.ioException ؛ استيراد java.io.inputstreamreader com.google.gson.jsonarray ؛ استيراد com.google.gson.jsonioException ؛ استيراد com.google.gson.jsonoBject */ السلسلة الثابتة العامة getjsonstring () {string path = jsonutil.class.getClassLoader (). getResource ("/ test.json"). getPath (). استبدال ("٪ 20" ، "") ؛ ملف الملف = ملف جديد (مسار) ؛ حاول {fileReader filereader = new fileReader (file) ؛ reader reader = new inputStreamReader (FileInputStream جديد (ملف) ، "UTF-8") ؛ int ch = 0 ؛ StringBuffer SB = New StringBuffer () ؛ بينما ((ch = reader.read ())! = -1) {sb.append ((char) ch) ؛ } fileReader.close () ؛ reader.close () ؛ String jsonstring = sb.toString () ؛ إرجاع jsonstring. } catch (ioException e) {E.PrintStackTrace () ؛ العودة لاغية. }}}ثم تحليل سلسلة تنسيق JSON التي تم الحصول عليها
String jsonstring = jsonutil.getjsonstring () ؛ jsonparser parser = new jsonparser () ؛ jsonobject object = (jsonobject) parser.parse (jsonstring) ؛
بهذه الطريقة يمكنك الحصول على JSONOBJECT الصحيح
تحل المقالة أعلاه مشكلة Javaweb Reading Files JSON المحلية والرموز المشوهة. هذا هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.