공공데이터 api

(。◠ ◠。)·2022년 9월 23일

국비 개발 훈련 일기

목록 보기
35/35

data.getShoppingKr.item[0].MAIN_TITLE

data로 받아왔고, getShoppingKr이라는 키값에
item이라는 키는 배열이라서[0]의 키를 다시 부르면 벨류가 나옴..

컨트롤러

@Controller
public class MyController {
	
	@RequestMapping("/")
	public @ResponseBody String root() {
	return "공공데이터활용연습";
	}
	
	@RequestMapping("/index")
	public void index() {
	}
	
	@RequestMapping("/api")
	@ResponseBody
	public StringBuilder api() throws IOException {
        StringBuilder urlBuilder = new StringBuilder("http://apis.data.go.kr/6260000/ShoppingService/getShoppingKr"); /*URL*/
        urlBuilder.append("?" + URLEncoder.encode("serviceKey","UTF-8") + "=a3ItCVcTlApfvmgijShSPU8kIHKtnPv6Jqw5g5%2Fo%2FUVaZ2y90%2BBbQqY3VCDQilC0DC5o1S57%2FX3wX7aGdQ%2F4nQ%3D%3D"); /*Service Key*/
        urlBuilder.append("&" + URLEncoder.encode("pageNo","UTF-8") + "=" + URLEncoder.encode("1", "UTF-8")); /*페이지번호*/
        urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode("10", "UTF-8")); /*한 페이지 결과 수*/
        urlBuilder.append("&" + URLEncoder.encode("resultType","UTF-8") + "=" + URLEncoder.encode("json", "UTF-8")); /*JSON방식으로 호출 시 파라미터 resultType=json 입력*/
        urlBuilder.append("&" + URLEncoder.encode("UC_SEQ","UTF-8") + "=" + URLEncoder.encode("292", "UTF-8")); /*콘텐츠 ID*/
        URL url = new URL(urlBuilder.toString());
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Content-type", "application/json");
        System.out.println("Response code: " + conn.getResponseCode());
        BufferedReader rd;
        if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
            rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        } else {
            rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
        }
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = rd.readLine()) != null) {
            sb.append(line);
        }
        rd.close();
        conn.disconnect();
        System.out.println(sb.toString());
        
        return sb;
	}
}

String으로 toString 해서 보내도 됨.

dataType:"json"을 text로 받으려면
var result = JSON.parse(data);하면 됨.

<script>
	
	$(function(){
		$.ajax({
			url:"api",
			type:"get",
			dataType:"json",
			success:function(data){
				var str = "<tr>";
				str +="<td>"+data.getShoppingKr.item[0].MAIN_TITLE+"</td>";
				str +="<td>"+data.getShoppingKr.item[0].PLACE+"</td>";
				str +="<td>"+data.getShoppingKr.item[0].ADDR1+"</td>";
				str +="<td>"+data.getShoppingKr.item[0].USAGE_DAY_WEEK_AND_TIME+"</td>";
				str +="<td>"+data.getShoppingKr.item[0].ITEMCNTNTS+"</td>";
				str += "/<tr>";
				$("#table").append(str);
			}
		});
	});
	
</script>
</head>
<body>

<table border="1" id="table">
	<tr>
		<td>MAIN_TITLE</td><td>PLACE</td><td>ADDR1</td><td>USAGE_DAY_WEEK_AND_TIME</td><td>ITEMCNTNTS</td>
	</tr>
</table>

profile
화이탱!

0개의 댓글