IT

JAVA 로또 번호 JSON 방식으로 불러오기

lottoking 2017. 11. 15. 20:58
반응형

로또 많이 좋아하시나요?


다들 한번 쯤 5등에 당첨되어 본 적도 있으실테고 그만큼 더 좋은 등수에 당첨되기를 염원하실텐데요.

혹시나 웹 화면이나 앱에 로또 당첨 번호를 알려주는 서비스를 해 보고 싶으신 분들은

나눔로또(http://www.nlotto.co.kr)에서 제공하고 있는 로또 당첨 번호 조회 API를 활용하시면

그 어느 시스템보다 정확하고 명백한 당첨 결과를 받으실 수 있습니다.


저는 JAVA 개발자라서 JAVA 언어 이용한 방법을 알려 드리고자 합니다.


우선 아래 소스를 보시죠.

import java.io.InputStreamReader;
import java.net.URL;

import org.json.simple.JSONObject;
import org.json.simple.JSONValue;

public class LottoTest {

	public static void main(String[] args) {
		
		// 로또 회차
		String turn = "778";
		URL result;
		
		try {
			
			// 로또 추첨 결과 조회 URL
			result = new URL("http://www.nlotto.co.kr/common.do?method=getLottoNumber&drwNo=" + turn);
			
			InputStreamReader isr = new InputStreamReader(result.openConnection().getInputStream(), "UTF-8");
			
			// JSON 형식 읽기
			JSONObject object = (JSONObject)JSONValue.parse(isr);
			
			System.out.println("읽기 결과 : " + object.toJSONString());
			
			// 성공인 경우
			if ("success".equals(object.get("returnValue"))) {
				
				System.out.print("로또 번호 :");
				for (int i = 1; i <= 6; i++) {
					System.out.print(" " + object.get("drwtNo" + i));
				}
				System.out.println(" (보너스 : " + object.get("bnusNo") + ")");
			} else {
				System.out.println(turn + "회차 로또 정보 읽기를 실패하였습니다.");
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}








개발 프로세스는 아래와 같습니다.

1. java.net.URL 클래스를 활용하여 http://www.nlotto.co.kr/common.do?method=getLottoNumber&drwNo=778와 같이 drwNo 파라미터에

   조회를 하고 싶은 로또 회차를 넣어 결과를 읽어드린다.

2. URL 결과를 InputStreamReader를 활용하여 스트림 형식으로 변환한다.

3. 스트림의 결과를 JSONObject로 파싱한다.

4. json 결과를 활용한다.


심플하죠?


실행 결과는 아래와 같습니다.

읽기 결과 : {"totSellamnt":75075606000,"returnValue":"success","drwNoDate":"2017-10-

28","firstWinamnt":6264069500,"drwtNo6":41,"drwtNo4":36,"firstPrzwnerCo":3,"drwt

No5":37,"bnusNo":11,"firstAccumamnt":18792208500,"drwtNo2":21,"drwNo":778,"drwtN

o3":35,"drwtNo1":6}

로또 번호 : 6 21 35 36 37 41 (보너스 : 11)


항목 설명)

returnValue : 읽기 성공 여부 (성공 : success, 실패 : fail)

drwNoDate : 추첨일자

drwtNo1 ~ 6 : 추첨 결과 6개 번호

bnusNo : 보너스번호

totSellamnt : 총 판매액

firstAccumamnt : 1등 당첨 총 금액

firstPrzwnerCo : 1등 당첨자 수

firstWinamnt : 1등 1명당 당첨 금액


참고로 http://www.nlotto.co.kr/common.do?method=getLottoNumber 이렇게 drwNo를 제외하고 호출할 경우 제일 최근에 추첨한 로또 당첨 결과를 읽습니다.


그리고 브라우저에서 해당 주소로 접속하시면 아래 캡쳐 그림처럼 하얀 화면에 JSON 방식의 텍스트 결과 값을 확인 할 수도 있습니다.


만약 아직 추천하지도 않은 회차로 조회할 경우, fail 메시지가 포함된 결과를 얻게 됩니다.


여기까지입니다.


친근한 로또처럼 꼭 1등하고도 친해지시길 바랍니다^^



반응형