java 에서 json 데이타 받는 방법의 하나의 예
java에서 json 데이타를 받는 방법중 한가지를 정리해본다.
이클립스와 postman을 이용해서 개발중이다.
1. 자바로 넘겨주는 데이타 형태
{
"aaaaa": "A6JGa+3/ROpgSsKZ5pUwjlG0bZ0Yp+Km1CAn4MhtzMg=",
"bbbb": "21",
"items": [
{
"cccc": "이름1",
"dddd": "핸드폰1"
},
{
"cccc": "이름2",
"dddd": "핸드폰2"
},
{
"cccc": "이름3",
"dddd": "핸드폰3"
},
{
"cccc": "이름4",
"dddd": "핸드폰4"
},
{
"cccc": "이름5",
"dddd": "핸드폰5"
}
]
}
이 데이타를 postman을 통해 아래와 같이 넘겨준다.
2. 자바에서 받을 때.
public ModelAndView aaaaaaaaaaa(@RequestBody String body) throws Exception {
....
}
형태로 받아서
JSONParser jsonParser = new JSONParser();
JSONObject jsonObj = (JSONObject)jsonParser.parse(body);
String aaaaa = (String) jsonObj.get("aaaaa");
String bbbb = (String) jsonObj.get("bbbb");
JSONArray jsonArr = (JSONArray) jsonObj.get("items");
for(int i=0;i<jsonArr.size();i++){
JSONObject jsonObj2 = (JSONObject)jsonArr.get(i);
String cccc = (String)jsonObj2.get("cccc");
String dddd = (String)jsonObj2.get("dddd");
}
위와 같이 해서 받았다.
3. import 되는 라이브러리를 조심해서 써야 하는 것 같다.
아래 것이 아닐 경우
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
아래와 같은 오류가 발생.( 작업하고 나서 확인하면 당연한 얘기지만 JSONObject을 처음써보다 보니 ;;;;;)
org.json.simple.JSONObject cannot be cast to org.codehaus.jettison.json.JSONObject
이렇게 해서 사용함.
2018.07.11





![[예약판매] LG 그램 16인치 2021 노트북 16Z90P-GA56K 11세대 인텔i5 웹캠 대화면 가벼운 노트북 윈도우10](https://static.coupangcdn.com/image/affiliate/banner/72e5421658e35261d5b3c6ed7d83da7d@2x.jpg)