[Java] JSP - JSON 데이터 주고 받기 - JSONParser
[Java] JSP - JSON 데이터 주고 받기 - JSONParser
json-simple 라이브러리를 이용하여
Android - JSP - JAVA
JSON 데이터 처리하는 방법입니다.
Step1 . JSON 데이터 생성 (Android)
JSONObject sendObject = new JSONObject();
JSONArray sendArray = new JSONArray();
// 각 정보마다 Object 로 만들어 Array 에 담는 반복문
try {
for(int i = 0; i < 10; i++ ){
JSONObject informationObject = new JSONObject();
informationObject.put("name","Charlie"+i);
informationObject.put("number",i+1);
sendArray.put(informationObject);
}
sendObject.put("list",sendArray);
} catch (JSONException e) {
e.printStackTrace();
}
실제 정보가 담겨있는 JSONObject를 JSONArray 에 담아주고
담긴 Array를 다시 JSONObject에 담아줍니다.
그렇게 되면 데이터 형식은 아래와 같습니다.
{ “list”
{
[ “name”:“charlie0” , “number”:“0” ] ,
[ “name”:“charlie1” , “number”:“1” ] ,
[ “name”:“charlie2” , “number”:“2” ] ,
…
}
}
이렇게 생성된 JSONObject 를 다양한 방법으로 JSP에 전달해주면됩니다.
저의 경우에는 HttpURLConnection
를 이용해서 String 형식으로 전송했습니다.
"json="+sendObject.toString()
제가 만든 요청 Parameter 입니다.
요청 URL 은 서버의 jsp 파일로 가도록 하였습니다.
Step2 . JSP 에서 데이터 받기 (JSP)
init.Manage 는 java 파일 패키지 명입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
page Encoding="UTF-8"%>
<%@ page import="init.Manage"%>
<%
request.setCharacterEncoding("UTF-8");
Manage manage = Manage.getInstance();
String json = request.getParameter("json");
String result = manage.method(json);
out.print(result);
%>
String으로 날린 데이터를 request 객체에서 post형식으로 받아줍니다.
실제로 JSON 데이터를 처리하는 부분은 java 에서 진행할 것이기 때문에
받은 데이터를 java 메소드에 매개변수로 전달만 해줍니다.
Step3 . JSON 데이터 처리하기 (Java)
public String method(String data){
String result = "";
try {
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(data);
JSONArray jsonArray = (JSONArray) jsonObject.get("list");
for(int i = 0; i < jsonArray.size(); i++ ){
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
String name = jsonObject.get("name").toString();
String number = jsonObject.get("number").toString();
//Do something..
}
result = "ok";
} catch (Exception e) {
result = "fail";
}
return result;
}
Android 에서 JSON 데이터를 만든 순서대로 다시 풀어주면 됩니다.
JSONObject { JSONArray ( JSONObjects…) }
이런 형태의 JSONObject를 역순으로 풀어줍니다.
JSONObject >> JSONArray >> JSONObject
여기에서 사용하는 가장 중요한 부분은
JSONParser 입니다.
String 으로 되어 있는 데이터를 JSON 형태로 파싱 해주는 parse 메소드를 이용하여 JSONObject를 만듭니다.
그 이후는 만든 순서대로 다시 가져오는 부분입니다.
[JSON 관련 포스팅]
2017-05-03 09:00 +0900