인프런 커뮤니티 질문&답변

qheogus55님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

HTTP 요청 데이터 - API 메시지 바디 - JSON

JSON 형식으로 파싱하는 이유?..

21.10.07 20:02 작성

·

739

1

json도 문자라서 객체로 변환시켜주어야 된다고하셨는데 그이유가 궁금합니다.
{"username":"jeong","age":"24"}

답변 3

1

qheogus55님의 프로필 이미지
qheogus55
질문자

2021. 10. 10. 18:38

시간내주셔서 친절한 답변해주신 OMG님 진심으로 감사드립니다!

1

OMG님의 프로필 이미지

2021. 10. 07. 20:31

1번

public ResponseEntity<?> addBoard(String octoberBoard) {
// octoberBoard =>"{ "title":"2021년 10월공지", "content":"고객이 증가하고 있습니다."}"
System.out.println("결과=" + octoberBoard);
// 결과={ "title":"2021년 10월공지", "content":"고객이 증가하고 있습니다."}
}

2번

public ResponseEntity<?> addBoard(Board octoberBoard) {
//System.out.println("제목=" + octoberBoard.getTitle());
// "제목=2021년 10월공지"
}


1번이 아닌 2번과 같이 처리하기 위해 객체로 변환한다고 이해하시면 됩니다.

1

OMG님의 프로필 이미지

2021. 10. 07. 20:25

안녕하세요. qheogus55님, 공식 서포터즈 OMG입니다.

본 강의는 json 형식으로 데이터를 주고 받는 방법을 설명해주시는 부분으로써,

클라이언트가 서버에게

{"username":"jeong","age":"24"}

위의 요청을 보내면 서버에서는 username과 age의 멤버변수를 갖는 클래스의 객체로 받을 수 있습니다.

가령 클라이언트가 서버에게

[POST] /board

{ "title":"2021년 10월공지", "content":"고객이 증가하고 있습니다."}

요청을 보냅니다.

 

public class Board {
private String title;
private String content;
// getter, setter
}

 

서버에서는 해당 요청을 받을 때 처리하는 Controller메서드에서 파라미터로 클라이언트에서 요청한 json 데이터를 받게되는데 json 형식의 String 타입 문자열로 받는게 아니라 아래의 Board octoberBoard와 같이 자바의 객체로 받습니다.

@RestController
public class BoardController {
@PostMapping
public ResponseEntity<?> addBoard(Board octoberBoard) {

return new ResponseEntity<>(HttpStatus.OK);
}
}

 

octoberBoard의 title과 content에  각각 2021년 10월공지, 고객이 증가하고 있습니다. 의 내용(값,데이터)을 갖고 있는 객체가 되어야 하며

강의에서는 해당 내용을 설명하는 것으로 이해하시면 됩니다.

감사합니다.