Недавно я столкнулся с проблемой при разработке проекта. Я использовал Googlede Gson в MyeCilpes, чтобы успешно прочитать файл JSON в проекте, а затем опубликовал проект Tomcat, а затем использовал тот же метод. Он подскажет «Система не может найти указанный путь»
Поместите файл в SRC/config/
JsonParser parser = new jsonParser (); JsonObject object = (jsonObject) parser.parse (новый FileReader ("config/test.json"));После поиска многих статей я обнаружил, что проблема должна заключаться в том, что после публикации на сервере относительный путь файла не найден, поэтому я могу использовать только абсолютный путь, чтобы найти тест проекта в рамках веб -приложений 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 fileereader (path));Тем не менее, контент, читаемый таким образом, искажен. Причина может заключаться в том, что формат кодирования системы не соответствует формату кодирования компилятора, поэтому я использовал потоковую передачу для чтения файла вместо этого
Импорт java.io.file; импорт java.io.fileinputstream; импорт java.io.filenotfoundexception; import java.io.filereader; импорт java.io.ioexception; импорт java.io.inputstreamreder; импорт java.io.reader; import java.ut.utlistlist; com.google.gson.jsonarray; import com.google.gson.jsonioexception; import com.google.gson.jsonobject; import com.google.gson.jsonparser; import com.google.gson.jsonsyntaxexexcept */ public static String getJSonstring () {String path = jsonutil.class.getClassloader (). getResource ("/ test.json"). getPath (). Заменить ("%20", ""); File file = new File (path); try {FileReader fileReader = new FileReader (файл); Reader Reader = new InputStreamReader (New FileInputStream (File), "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 (); вернуть JSonstring; } catch (ioException e) {e.printstackTrace (); вернуть ноль; }}}Затем проанализируйте полученную строку формата json
String jsonstring = jsonutil.getjsonstring (); jsonparser parser = new jsonparser (); JsonObject object = (jsonObject) parser.parse (jsonstring);
Таким образом, вы можете получить правильный jsonObject
Приведенная выше статья решает проблему того, как Javaweb чтение локальных файлов JSON и искаженных кодов. Это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.