스프링MVC
json
simplism
2023. 1. 18. 15:39
- 스프링내부에서 알아서 json형태로 만들어줌 (스트링내부 컨테이너)
- @controller + @ ResponseBody = @RestController
- 클래스 상단에 @ResponseBody 입력시 모든메서드에 추가됨.
- 컨트롤 내 메서드위에 @ResponseBody를 넣어주면, ★웹페이지(뷰)를 응답하지않고★,
esponse body에 String을 추가해서 response 하겠다는 의미
@RequestMapping("/getString")
@ResponseBody
public String responseString() {
return "json";
}
@RequestMapping("/getJsonObj")
@ResponseBody
public MemberDTO responseOBJ() {
return service.memberIdRead("가오리상");
}
@RequestMapping("/getJsonArr")
@ResponseBody
public List<MemberDTO> getJsonArr() {
return service.memberlist();
}
원래는 이런식으로 json parser를 진행해야하지만, 위처럼 스프링에서 대신해준다.
public static void main(String[] args) throws FileNotFoundException, IOException, ParseException {
//1. JSONParser 생성
JSONParser parser = new JSONParser();
//2. Json 파싱하기
JSONObject root = (JSONObject) parser.parse(new FileReader("src/json/mydata2.json"));
//3. JOSNObject의 데이터를 읽기 (object 1:1관계인경우_ name,age)
String name = (String) root.get("name");
String age = (String) root.get("age");
System.out.println("name : " + name);
System.out.println("age : " + age);
//4. JSONArrray의 데이터를 읽기 (JSONArrray 1:1관계인경우_ subject)
JSONArray subjectlist = (JSONArray) root.get("subject");
for (int i = 0; i < subjectlist.size(); i++) {
String subject = (String) subjectlist.get(i);
System.out.println("subject : " + subject);
}
// 5.[ history ] JSONArrray 안에 JSONObject 포함되있는경우
// [] > {}
JSONArray historylist = (JSONArray) root.get("history");
for (int i = 0; i < historylist.size(); i++) {
JSONObject history = (JSONObject)historylist.get(i);
System.out.println("__________________month : "+ history.get("month"));
System.out.println("__________________subject : "+ history.get("subject"));
}
//6. [ addr ] JSONArrray 안에 JSONObject가 있는경우
// {} > {} {}
JSONObject addr = (JSONObject) root.get("addr");
String zip = (String) addr.get("zip");
String addr1 = (String) addr.get("addr1");
System.out.println("zip : "+zip);
System.out.println("addr1 : "+addr1);
}
Json Parser
/* json 파일을 읽어서, JSONArray나 JSONObject로 변환
JSON파서 : JSONParser(json-simple.jar 라이브러리 파일에서 지원)
*/
public class JSONParserTest {
public static void main(String[] args) throws FileNotFoundException, IOException, ParseException {
//1. JSONParser 생성
JSONParser parser = new JSONParser();
//2. json 파싱하기 //파싱이란? json문자열을 뜯어서 객체로 변환하는것
JSONObject root = (JSONObject) parser.parse(new FileReader("src/json/mydata.json")); //파일로부터 받아서 읽을꺼니까 file reader
//parse 메서드는 object를 리턴 , 그러나 담는건 JSONOject이기에 캐스팅필요 // Exception 처리
// 3. JSONObject의 데이터를 읽기
String name = (String) root.get("name"); //root.get 리턴결과가 object라서 String캐스팅필요
String age = (String) root.get("age"); //root.get 리턴결과가 object라서 String캐스팅필요
System.out.println("name :" + name);
System.out.println("age :" + age);
// 4. JSONArray의 데이터를 읽기
JSONArray subjectlist = (JSONArray) root.get("subject"); //root.get 리턴결과가 object라서 JSONArray캐스팅필요
//System.out.println("subject : " + subjectlist);
for (int i = 0; i < subjectlist.size(); i++) { //JSONArray length가 아니라 size()
String subject = (String)subjectlist.get(i);
System.out.println("subject : " + subject);
}
}
}