자바 웹 이 로 컬 json 파일 을 읽 고 어 지 러 운 문 제 를 해결 합 니 다.

최근 개발 프로젝트 에서 문제 가 발생 했 습 니 다.my ecilpes 에서 googlede gson 을 사용 하여 프로젝트 의 json 파일 을 읽 는 데 성공 한 다음 프로젝트 를 tomcat 에 발표 하고 같은 방법 을 사용 하면"시스템 에서 지정 한 경 로 를 찾 을 수 없습니다"라 고 알려 줍 니 다.
파일 을 src/config/아래 에 놓 습 니 다.

JsonParser parser = new JsonParser();
    JsonObject object = (JsonObject) parser.parse(new FileReader("config/Test.json"));
많은 글 을 찾 은 후에 문 제 는 서버 에 발표 한 후에 파일 을 읽 는 상대 적 인 경 로 는 파일 을 찾 을 수 없 기 때문에 절대적 인 경 로 를 사용 하여 tomcat 의 webapps 에서 프로젝트 Test 를 찾 을 수 밖 에 없다 는 것 입 니 다.
경로

D:\Program Files\Tomcat 8.0\webapps\Test\WEB-INF\classes\Test.json 
읽 기 경 로 를 수정 하면 json 파일 을 읽 을 수 있 습 니 다.다음은 단독 자바 클래스 에서 절대 경 로 를 얻 는 방법 입 니 다.폴 더 에 빈 칸 이 있 기 때문에 빈 칸 부분 을 바 꾸 었 습 니 다.

String path = JsonUtil.class.getClassLoader().getResource("/Test.json").getPath().replace("%20", " ");
JsonParser parser = new JsonParser();
    JsonObject object = (JsonObject) parser.parse(new FileReader(path ));
그러나 이렇게 읽 은 내용 은 어 지 러 운 코드 입 니 다.시스템 인 코딩 형식 과 컴 파일 러 의 인 코딩 형식 이 일치 하지 않 기 때문에 저 는 스 트림 으로 파일 을 읽 었 습 니 다.

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.Reader;
import java.util.ArrayList;
import java.util.List;
import 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 {
/**
   *     json  ,  json     
   * @return
   */
  public static String getJsonString(){
    String path = JsonUtil.class.getClassLoader().getResource("/Test.json").getPath().replace("%20", " ");
    File file = new File(path);
    try {
      FileReader fileReader = new FileReader(file);
      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();
      return jsonString;
    } catch (IOException e) {
      e.printStackTrace();
      return null;
    }
  }
}
그리고 가 져 온 json 형식의 String 을 분석 합 니 다.

String jsonString = JsonUtil.getJsonString();
JsonParser parser = new JsonParser();
    JsonObject object = (JsonObject) parser.parse(jsonString);
이렇게 하면 정확 한 제 이 슨 오 브 젝 트 를 얻 을 수 있 습 니 다.
자바 웹 이 로 컬 제 이 슨 파일 을 읽 고 어 지 러 운 코드 를 읽 는 문 제 를 해결 하 는 것 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기