JAVA

1️⃣ NAVER Maps API를 활용한 Geocoding 프로젝트 (2)

공부하는혜원 2021. 3. 16. 18:56

<<Java TPC 실전프로젝트(Java API 활용) 따라하기😋>>

1. JSON API 활용하기 (JSON-Java)

 

1) 한 사람에 대한 JSON 객체를 만들어준다.

>> JSON 형태로 출력됨.

 

사람을 더 추가한다 했을 때, 배열로 관리한다면 더 효율적일 것이다.

 

 

 

 2) 배열을 만들어서 새로운 객체를 추가해보기

JSONArray를 만들고 

put을 이용해 앞의 student의 객체를 배열에 넣어준다.

새로운 객체를 추가하고 마찬가지로 배열에 넣어준다. 

 

 

 

3) 배열 출력하기

object를 하나 더 생성해준다. object안에 KEY 값을 입력해주고 VALUE는 배열 안을 출력할 것이기 때문에 students를 입력해준다. 그리고 출력을 해주면 되는데, object만 입력해도 되지만, 앞에서 재선언 해주었던 toString을 불러와 깔끔하게 출력해준다. ( 안의 숫자는 들여쓰기 간격 )

출력결과

 

2. JSON 파일 처리하기

 앞선 예제의 출력 결과를 .json 파일 형태로 받았다고 가정하고, 원하는 정보만 출력해보기

 

1) JSON 파일 생성

앞에의 출력 결과를 .json 파일을 생성해 입력해 준다.

 

 

 

2) 스트림

파일을 읽기위한 InputStream 함수를 호출한다. 

 

json파일은 현재 상대 경로가 아닌 절대 경로로 호출되어 있다. 클래스와 같은 경로상에 있다면 문제가 없겠지만, 다른 경로에 json파일을 위치해 두었기 때문에 그대로 호출하게 된다면 경로를 찾지 못하는 문제가 발생한다.

 

>> getResourceAsStream은 현재 클래스가 만들어진 곳에서 리소스와 연결해 json파일을 얻어올 수 있다. 즉, 같은 경로안에 있다면 언제든지 불러올 수 있도록해준다.

 

혹시모를 NullPointerException를 입력해둔다. 만약 이 에러가 뜬다면 경로문제일 것이다. (아마 ^^! 나는 그랬다.)

 

 

 

 

3) JSONTokener

문자열을 JSON 형태로 받아오기위해 JSONTokener를 호출한다.

JSONTokener는 is라는 스트림(앞에 InputStream으로 선언)을 이용해서 문자열 데이터를 메모리로 올려놓는 작업을 하는 함수이다. JSON 구조로 토큰화를 하는 것이다.

즉, 문자열을 JSON객체로 바꾸는 작업이다.

그 후에 문자열 전체가 JSON object가 되도록 object에 tokener를 넣어준다.

 

 

 

3) 출력하기

배열에서 JSONArray를 빼내기위해 getJSONArray를 사용한다.

그리고 반복문을 사용해 하나씩 가져온다.

 

get(0)은 

이 부분이고,

get(1)은

이 부분이다. 

 

참고로 get은 타입이 Object이기 때문에 JSONObject로 다운캐스팅 해주어야 한다.

 

 

이제 json 안에 있는 내가 원하는 두 사람의 회원정보를 빼올 수 있다.

출력 결과

 

 

 

🌈Tech Stack🌈