반응형
일반적인 파라미터를 받을 때
@RequestMapping로 URL과 그 파라미터를 받아올 때 파라미터가 각각 있다면 아래와 같이 @RequestParam 어노테이션을 써서 받아오면 된다.
@RequestMapping(value="URL이 들어가는 자리") public void MemberInfo( @RequestParam(value="site") String site, @RequestParam(value="id") String id, @RequestParam(value="pw") String pw ) throws Exception { }
json, json 배열로 파라미터를 받을 때
하지만 이 파라미터를 json형태로 받는 경우에는 @RequestBody 어노테이션을 써서 받아오면 된다.
@RequestMapping(value="URL이 들어가는 자리") public void MemberInfo( @RequestBody HashMap<String, Object> params ) throws Exception { }
이때 파라미터로 받아오는 json안에 배열이 있는 경우가 있다.
받긴 받았는데 배열의 값을 꺼냈을 때는 여러 가지 방법이 있지만 여기서는 json-lib 라이브러리를 사용해서 활용하려고 한다.
직접 Maven에서 다운받거나 pom.xml에 아래의 내용을 입력하여 라이브러리를 추가해준다.
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> |
아래와 같은 json 배열을 받았다고 가정해보자.
{ "site": "main", "login_info": [ { "id": "test1", "pw": "12345" }, { "id": "test2", "pw": "67890" }, { "id": "test3", "pw": "1234567890" } ] }
이 중 login_info 속의 정보를 가져오고 싶을 때는 for문을 이용한다.
@RequestMapping(value="URL이 들어가는 자리") public void MemberInfo( @RequestBody HashMap<String, Object> params ) throws Exception { List<Map<String,Object>> map = new ArrayList<Map<String,Object>>(); map = JSONArray.fromObject(params); for(Map<String, Object> for_map : map){ System.out.println("ID : " + for_map.get("id") + "/" + "PASSWORD : " + for_map.get("pw")); } }
위의 코드를 실행하면 콘솔 창에 아래와 같이 나온다.
ID : test1 / PASSWORD : 12345 ID : test2 / PASSWORD : 67890 ID : test3 / PASSWORD : 1234567890 |
반응형
'개발 > JAVA' 카테고리의 다른 글
[JAVA] 자바에서 OPEN API 연결하기 (0) | 2021.12.21 |
---|---|
JDOM(Java Document Object Model) 관련 (0) | 2021.11.18 |
[JAVA] indexOf() / lastIndexOf() (0) | 2021.11.16 |
[SPRING] Mybatis에서 다중 insert하기 (3) | 2021.11.07 |
[SPRING] Mybatis에서 insert할 때 null 처리하기 (0) | 2021.10.07 |