본문 바로가기

개발/JAVA

[SPRING] 파라미터 속 json 배열 꺼내쓰기

반응형

일반적인 파라미터를 받을 때


@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




반응형