JSON을 많이 쓰는 이유?
{ "name":"홍길동", "age":20, "nationality":"대한민국", "hobby":"영화보기" }
{ "group1":{ "name":"홍길동", "age":20, "nationality":"대한민국", "hobby":"영화보기", "category":['1','2','3'], "company":{ "cname":"XX원자력 발전소", "cphone":"02-5133-5111", "caddress":"경기도 용인시" } } }
person=[ {"name":"홍길동", "age":20, "nationality":"한국"}, {"name":"이순신", "age":30, "nationality":"미국"}, {"name":"강감찬", "age":40, "nationality":"영국"} ]





JSON.parse(jsonText): JSON 형식의 텍스트 문자열을 목적에 맞게 객체로 변환
'경기데이터드림'에 의한 Open API 사용방법
1) 로그인 후 개인 인증키 발급
2) URL에 KEY값에 발급 받은 인증키 값을 넣는다.
https://openapi.gg.go.kr/MovieTheater?KEY=[개인인증키]
이 URL을 입력할 경우, XML로 나온다
JSON으로 변경하고 싶을 때는 Type=json을 추가해준다
https://openapi.gg.go.kr/MovieTheater?KEY=[개인인증키]&Type=json
pSize로 출력하고 싶은 개수도 조절이 가능하다


잘 출력되는 것을 확인할 수 있다.
package algo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String args[]) {
// 버퍼 이용: BufferedReader 버퍼를 이용해서 읽고 쓰는 함수
// 버퍼: 입출력 속도 향상을 위해서 데이터를 일시적으로 메모리 영역의 한 곳에 모아두는 것
// 버퍼의 장점: 버퍼를 이용하기 때문에 입출력 관련 처리 작업을 매우 빠르게 할 수 있다
BufferedReader br = null;
try {
// 공공 API 인증키 및 전체 풀 주소
// 변수에 여러 값을 넣어서 주소 체계를 만들어야 한다면 StringBuilder
// String: 불변성을 가지므로 문자열을 더할 때 매번 새로운 객체를 참조하는 방식 --> 값 변경X
// StringBuilder: 문자열을 더해 나갈 때 새로운 객체를 매번 생성하는 것이 아니라 기존 데이터 값에 추가하는 방식
// : mutable 속성이고, append(), insert(), delete() 등을 사용해서 값을 변경
// 보통 공공API 방식 --> StringBuilder 사용
String urlStr = "https://openapi.gg.go.kr/MovieTheater?KEY=////&Type=json";
URL url = new URL(urlStr);
// openConnection() 메서드를 이용한 연결
// URL 주소의 원격 객체에 접속한 뒤 통신할 수 있는 URLConnection 객체 리턴
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.setRequestMethod("GET");
urlConn.setRequestProperty("Content-type", "application/json");
System.out.println("Response Code: " + urlConn.getResponseCode());
// InputStreamReader 클래스로 읽기
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8"));
String rst = "";
String line;
while ((line = br.readLine()) != null) {
rst += line + "\n";
}
//System.out.println(rst);
br.close();
urlConn.disconnect();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
