Recentemente, encontrei um problema ao desenvolver um projeto. Usei o Googlede GSON no myecilpes para ler o arquivo JSON no projeto com sucesso e depois publiquei o projeto no Tomcat e depois usei o mesmo método. Ele solicitará "o sistema não pode encontrar o caminho especificado"
Coloque o arquivo em src/config/
JSONPARSER Parser = new JSONPARSER (); JsonObject Object = (JsonObject) parser.parse (new FileReader ("config/test.json"));Depois de procurar muitos artigos, descobri que o problema deveria ser que, depois de publicar no servidor, o caminho relativo do arquivo não é encontrado, para que eu só possa usar o caminho absoluto para encontrar o teste do projeto sob os aplicativos da Web do tomcat
O caminho é
D:/Arquivos de programas/tomcat 8.0/webApps/test/web-inf/classes/test.json
Depois de modificar o caminho de leitura, você pode ler para o arquivo JSON. A seguir, é apresentado o método para obter o caminho absoluto em uma classe Java separada. Como existem espaços na pasta, substituí a parte do espaço dos espaços que foram alterados.
String Path = jsonutil.class.getclassloader (). GetResource ("/test.json"). GetPath (). Substituir ("%20", ""); jsonparser parser = new jsonparser (); JsonObject Object = (JsonObject) Parser.Parse (novo FileReader (Path));No entanto, o conteúdo lido dessa maneira é iluminado. O motivo pode ser que o formato de codificação do sistema seja inconsistente com o formato de codificação do compilador, então usei streaming para ler o arquivo em vez disso
importar java.io.file; importar java.io.fileInputStream; importar java.io.filenotfoundException; importar java.io.fileReader; importar java.io.ioexception; importar java.io.InputStreamRereader; com.google.gson.jsonArray; importar com.google.gson.jsonioException; importar com.google.gson.jsonObject; importar com.google.gson.jsonparser; import com.google.gson.jsonsyntoxception; ** ** @author lk */public class { */ public static string getjSonstring () {string path = jsonutil.class.getclassloader (). getResource ("/ test.json"). getPath (). substituir ("%20", ""); Arquivo de arquivo = novo arquivo (caminho); tente {fileReader fileReader = new fileReader (arquivo); Leitor leitor = new inputStreamReader (new FileInputStream (arquivo), "UTF-8"); int ch = 0; StringBuffer sb = new StringBuffer (); while ((ch = reader.read ())! = -1) {sb.append ((char) ch); } fileReader.close (); leitor.close (); String jSonstring = sb.toString (); retornar JSonstring; } catch (ioexception e) {e.printStackTrace (); retornar nulo; }}}Em seguida, analise a sequência de formato JSON obtida
String jSonstring = jsonutil.getjSonstring (); jsonparser parser = new jsonparser (); JsonObject Object = (JsonObject) Parser.Parse (JSonstring);
Dessa forma, você pode obter o JsonObject correto
O artigo acima resolve o problema de Javaweb lendo arquivos JSON local e códigos ilegais. Este é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.