Recientemente, encontré un problema al desarrollar un proyecto. Utilicé Googlede Gson en Myecilpes para leer el archivo JSON en el proyecto con éxito, y luego publiqué el proyecto a Tomcat y luego usé el mismo método. Indicará "el sistema no puede encontrar la ruta especificada"
Coloque el archivo en src/config/
Jsonparser parser = new JsonParser (); JsonObject Object = (JSONObject) parser.parse (new FileReader ("config/test.json"));Después de buscar muchos artículos, descubrí que el problema debería ser que después de publicar en el servidor, no se encuentra la ruta relativa del archivo, por lo que solo puedo usar la ruta absoluta para encontrar la prueba del proyecto bajo las aplicaciones web de Tomcat
El camino es
D:/archivos de programa/tomcat 8.0/webapps/test/web-inf/classes/test.json
Después de modificar la ruta de lectura, puede leer en el archivo JSON. El siguiente es el método para obtener la ruta absoluta en una clase Java separada. Debido a que hay espacios en la carpeta, reemplacé la parte espacial de los espacios que se cambiaron.
String ruta = jsonutil.class.getClassLoader (). GetResource ("/test.json"). GetPath (). Reemplazar ("%20", ""); jsonparser parser = new JsonParser (); JSONObject Object = (JSONObject) parser.parse (new FileReader (ruta));Sin embargo, el contenido leído de esta manera está confuso. La razón puede ser que el formato de codificación del sistema es inconsistente con el formato de codificación del compilador, por lo que utilicé la transmisión para leer el archivo en su lugar.
import java.io.file; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; import java.io.inputstreamreader; import java.io.iA 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 el archivo Json Json y obtenga el archivo JSON y obtenga el JSON JSON * */ public static string getJSonstring () {string rath = jsonutil.class.getClassLoader (). getResource ("/ test.json"). getPath (). reemplazar ("%20", ""); Archivo archivo = nuevo archivo (ruta); intente {FileReader FileReader = new FileReader (archivo); Lector lector = new InputStreamReader (new FileInputStream (archivo), "UTF-8"); int ch = 0; StringBuffer sb = new StringBuffer (); while ((ch = lector.read ())! = -1) {sb.append ((char) ch); } filereader.close (); lector.close (); Cadena jsonstring = sb.ToString (); regresar jsonstring; } catch (ioException e) {E.PrintStackTrace (); regresar nulo; }}}Luego analice la cadena de formato JSON obtenida
String jsonstring = jsonutil.getjSonstring (); jsonparser parser = new JsonParser (); JSONObject Object = (JSONObject) parser.parse (jsonstring);
De esta manera puedes obtener el JsonObject correcto
El artículo anterior resuelve el problema de Javaweb que lee archivos JSON locales y códigos confusos. Este es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.