Récemment, j'ai rencontré un problème lors du développement d'un projet. J'ai utilisé Googlede GSON sur MyECilpes pour lire avec succès le fichier JSON dans le projet, puis j'ai publié le projet sur Tomcat, puis j'ai utilisé la même méthode. Il invitera "le système ne peut pas trouver le chemin spécifié"
Placez le fichier sous Src / config /
JsonParser parser = new JsonParser (); JsonObject object = (jsonObject) parser.parse (nouveau fileReader ("config / test.json"));Après avoir recherché de nombreux articles, j'ai constaté que le problème devrait être qu'après avoir publié le serveur, le chemin relatif du fichier n'est pas trouvé, donc je ne peux utiliser que le chemin absolu pour trouver le test de projet sous les webapps de Tomcat
Le chemin est
D: / / Program Files / Tomcat 8.0 / Webapps / Test / Web-Inf / Classes / Test.json
Après avoir modifié le chemin de lecture, vous pouvez lire dans le fichier JSON. Ce qui suit est la méthode pour obtenir le chemin absolu dans une classe Java distincte. Parce qu'il y a des espaces dans le dossier, j'ai remplacé la partie spatiale des espaces qui ont été modifiés.
String path = jsonUtil.class.getClassloader (). GetResource ("/ test.json"). GetPath (). Remplace ("% 20", ""); jsonParser parser = new JSonParser (); JsonObject object = (jsonObject) parser.parse (new fileReader (path));Cependant, le contenu lu de cette manière est brouillé. La raison peut être que le format de codage du système est incompatible avec le format de codage du compilateur, j'ai donc utilisé le streaming pour lire le fichier à la place
Importer java.io.file; importer java.io.fileInputStream; import java.io.filenotfoundException; import java.io.fileReader; importer java.io.ioexception; import java.il.inputStreamreader; import java.iil.reader; import java.util.ArrayList; import java.util. 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 {/ ** * a lu le fichier json * / Format publique JsonUtil {/ ** * a lu le fichier json * / Format public JsonUtil {/ ** * a lu le fichier JSON et le fait de recevoir JSON FORMAT JSON {/ ** * * @return * / public static String getjSontring () {String path = jsonUtil.class.getClassloadher (). getResource ("/ test.json"). getPath (). Remplace ("% 20", ""); Fichier fichier = nouveau fichier (chemin); try {fileReader fileReader = new fileReader (fichier); Reader Reader = new inputStreamReader (new FileInputStream (fichier), "utf-8"); int ch = 0; StringBuffer sb = new StringBuffer (); while ((ch = reader.read ())! = -1) {sb.append ((char) ch); } fileReader.close (); Reader.Close (); String jSontring = sb.toString (); retourner jsonstring; } catch (ioException e) {e.printStackTrace (); retourner null; }}}Puis analyser la chaîne de format JSON obtenu
String jsonstring = jsonutil.getjSontring (); jsonParser parser = new JSonParser (); JsonObject object = (jsonObject) parser.parse (jsonstring);
De cette façon, vous pouvez obtenir le bon jsonObject
L'article ci-dessus résout le problème de la lecture de fichiers JSON locaux Javaweb et de codes brouillé. C'est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.