본문 바로가기

JSON

JSON - 데이터 파싱

해당 제이쓴 파싱 해보기

 

 

)테스트용 파싱 코드

String json_str = ""; 
JSONObject json = newJSONObject
("{\"name\":\"일길동\",\"age\":30,\"hobby\":[\"독서\",\"낚시\"]}");

String name = json.getString("name"); int age = json.getInt("age");

System.out.printf("이름:%s, 나이:%d\n", name, age);

JSONArray hobbyArray = json.getJSONArray("hobby"); 
for(int i = 0; i<hobbyArray.length(); i++) { 
    String hobby = hobbyArray.getString(i);
    System.out.printf("취미 %d : %s\n", i+1, hobby); 
}

 

)조회 서블릿 코드

List<PersonVo> p_list = new ArrayList<PersonVo>();
		
		try {
			String str_url = "http://localhost:8080/2024_0709_JSONTest/person.jsp";		
			URL url = new URL(str_url);
			
			// 이용하는 이유: 요청시 헤더정보 전달(인증키)
			URLConnection urlConn = url.openConnection();//
			
			InputStream is = url.openStream();
			
			// 필터링(line단위로 읽어온다)
			BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
			
			StringBuilder sb = new StringBuilder();
			
			while (true) {
				
				String data = br.readLine(); // line단위로 읽어옴
				if(data==null)break;
				
				sb.append(data);
			}
			
			//JSON Parsing
			JSONObject json = new JSONObject(sb.toString());
			int size = json.getInt("size");
			JSONArray personArray = json.getJSONArray("list");
			for(int i=0; i<personArray.length(); i++) {
				
				JSONObject person = personArray.getJSONObject(i);
				// person = {"name":일길동, "age":31, "tel":"010-111-1234"}
				String name = person.getString("name");
				int age		= person.getInt("age");
				String tel	= person.getString("tel");
				
				PersonVo vo = new PersonVo(name, age, tel);
				p_list.add(vo);
			}			
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		
		request.setAttribute("p_list", p_list);

		// Dispatcher형식으로 호출
		String forward_page = "result_json.jsp";
		RequestDispatcher disp = request.getRequestDispatcher(forward_page);
		disp.forward(request, response);

'JSON' 카테고리의 다른 글

JSON - 카카오API활용예제(지역)  (0) 2024.07.09
JSON - 카카오 API 설정  (0) 2024.07.09