본문 바로가기
놀기/잡스러운 것

JSON Array를 Spring Controller (스프링 컨트롤러) 에서 받기

by Hi~ 2021. 8. 10.

String Controller로 JSON Array를 넘길일이 종종 있다. 귀찮으면 쪼개거나 String으로 받아 Json parsing을 하는 방식이 있는데, 이래저래 귀찮은 것은 마찬가지다.

 

그럼 아래와 같은 Json을 넘겨보자.

{
    "items": [
        {
            "name" : "dog1",
            "age" : 2
        },
        {
            "name" : "dog2",
            "age" : 4
        }
    ]
}

 

일단, 위와 같은 모양으로 class를 만들어 준다.

// TestBody.java
import java.util.List;

import lombok.Data;

@Data
public class TestBody {
	private List<Test> items;
}

// Test.java
import lombok.Data;

@Data
public class Test {
	private String name;
	private Integer age;
}

 

그리고 컨트롤러의 RequestBody에 넣어 준다.

@PostMapping(value = "/test", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public String test(
	HttpServletRequest request,
	@Parameter(description = "test", required = true) @RequestBody TestBody test
) throws Exception {

	test.getItems().forEach(d -> {
		logger.info("Name : " + d.getName());
		logger.info("Age : " + d.getAge());
	});
	logger.info(test.getItems().size() + "");

	return "bye";
}

 

받아서 찍어보면 아래와 같이 나오는 것을 알 수 있다.

 

너무 간단한가?

 

 

 

댓글