데이터 표기 방법
중 하나이고,name:value
형태의 구조를 가지고 있다.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <script> let xhr = new XMLHttpRequest(); xhr.open("GET", "data.json", true); xhr.send(); xhr.onreadystatechange = function() { if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200){ let obj = JSON.parse(xhr.responseText); alert(obj.count); alert(obj.result); } } </script> </body> </html>
xhr.responseText
여기에 담겨있다.JSON.parse()
메서드를 사용해야 한다.{ "result" : "success", "count" : 50 }
{ "search_word" :[ {"rank":"1", "name" : "코로나"}, {"rank":"2", "name" : "비트코인"}, {"rank":"3", "name" : "JSP"}, {"rank":"4", "name" : "JAVA"}, {"rank":"5", "name" : "웹개발"} ] }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>Ajax를 이용해 실시간 순위 나타내기</h1> <table border="1"> <tr> <th>실시간 검색 순위</th> <th>키워드</th> </tr> <tr> <td id="td1">순위</td> <td id="td2">키워드</td> </tr> </table> <script> window.onload = function() { //HTML 이 다 load가 완료 됐을 때 실행 let td1 = document.getElementById("td1"); let td2 = document.getElementById("td2"); let xhr = new XMLHttpRequest(); xhr.open("GET", "data2.json", true); xhr.send(); xhr.onreadystatechange = function() { if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200){ let obj = JSON.parse(xhr.responseText); let i = 0; setInterval(function () { if(i == obj.search_word.length){ i = 0; } td1.innerHTML = obj.search_word[i].rank; td2.innerHTML = obj.search_word[i].name; i++; }, 2000); } } }
- setInterval() 함수를 이용하여 2초마다 반복 실행
package com.koit.wweb.json; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class Json_test { public static void main(String[] args) { // JSON 객체 생성 JSONObject in = new JSONObject(); in.put("name", "자바학생"); in.put("gender", "남자"); in.put("age", "10"); // {"name" : "자바학생", "gender" : "남자", "age" : "10"} JSONObject out = new JSONObject(); out.put("in", in); // { "in" : {"name" : "자바학생", "gender" : "남자", "age" : "10"} } //출력 System.out.println(out.toJSONString()); String json = out.toJSONString(); // 파싱 JSONParser parser = new JSONParser(); JSONObject p_out = null; JSONObject p_in = null; String name; String gender; int age; try { // "in"을 기준으로 자름 p_out = (JSONObject) parser.parse(json); // 잘려진 "in"을 기준으로 // "name","gender","age" 값에 접근 가능 p_in = (JSONObject) p_out.get("in"); name = (String) p_in.get("name"); gender = (String) p_in.get("gender"); age = Integer.parseInt( (String) p_in.get("age")); System.out.println(name + gender + age); } catch (ParseException e) { e.printStackTrace(); } } }
- 자바 단에서 데이터 가공 가능하다.