[Spring Boot] JSON 객체 송수신 예제

2024. 3. 15. 13:31· Spring Boot
목차
  1. 1. JSON 이란
  2. 2.  기본 클래스 및 예제 설명
  3. 2-1. Student
  4. 2-2. StudentDto
  5. 2-3. 예제 설명
  6. 3. 단일 객체 송신
  7. 4. 다중 객체 송신
  8. 5. 단일 객체 수신

1. JSON 이란

  • JSON : JavaScript Object Notation
  • 데이터 저장, 전송 등에 사용되는 데이터 교환 형식
  • 서버와 클라이언트 사이의 데이터 교환에 주로 사용됨
  • 키 : 값 형태를 가짐
    • ex : "name": "홍길동"

 

2.  기본 클래스 및 예제 설명

  • 예제에 사용될 기본적인 클래스 생성

 

2-1. Student

  • ArrayList를 포함한 클래스
@Getter
@Setter
@AllArgsConstructor
public class Student {

    public String name;
    public String password;
    public int age;

    public ArrayList<String> classes = new ArrayList<>();

    public Student() {
    }
}

 

2-2. StudentDto

  • api 통신을 위해 사용되는 DTO
    • 비밀번호는 개인정보 보호 관계로 전송하지 않는다고 설정
    • 비밀번호를 제외한 나머지 정보를 담는 dto
@Data
@AllArgsConstructor
public class StudentDto {
    public String name;
    public int age;
    public ArrayList<String> classes;

    public StudentDto(Student student) {
        this.name = student.getName();
        this.age = student.getAge();
        this.classes = student.getClasses();
    }
}

 

2-3. 예제 설명

  • postman 을 통해서 json 데이터 송수신
  • Student 클래스를 통해서 학생의 정보를 다룸
  • 송신(단일 객체, 다중 객체) 와 수신(단일 객체, 다중 객체) 를 다룸

 

3. 단일 객체 송신

  • 학생 정보 1개 전송
@RestController
public class StudentController {

    @GetMapping("/student")
    public StudentDto getOneStudent() {

        Student student = new Student("홍길동", "password1234", 23,
                new ArrayList<>(Arrays.asList("수업1", "수업2", "수업3")));
        return new StudentDto(student);
    }

}

 

  • 실행 결과

 

4. 다중 객체 송신

  • 학생 정보 여러개 전송
@GetMapping("/students")
public List<StudentDto> getStudents() {

    Student student1 = new Student("짱구", "password1234", 24,
            new ArrayList<>(Arrays.asList("수업1","수업2","수업3")));
    Student student2 = new Student("철수", "1234", 26,
            new ArrayList<>(Arrays.asList("수업2","수업4","수업5")));
    Student student3 = new Student("영희", "aabbcc", 20,
            new ArrayList<>(Arrays.asList("수업4","수업6")));

    ArrayList<StudentDto> students = new ArrayList<>();

    students.add(new StudentDto(student1));
    students.add(new StudentDto(student2));
    students.add(new StudentDto(student3));

    return students;
}

 

  • 실행 결과

 

5. 단일 객체 수신

  • 학생 정보 1개 수신
@PostMapping("/student")
public String postStudent(@RequestBody Student student) {
    String result = String.format("[학생 정보]\n" + "학생 이름 : %s\n나이 : %d\n수업 : %s",
            student.getName(), student.getAge(),student.getClasses());
    return result;
}

 

  • 실행 결과

 

6. 다중 객체 수신

  • 학생 정보 여러개 수신
@PostMapping("/students")
public String postStudents(@RequestBody List<Student> studentList) {
    String result = "[학생 정보]\n";
    int index = 1;
    for (Student student : studentList) {
        result += String.format("%d번 학생\n", index++);
        result += String.format("학생 이름 : %s\n나이 : %d\n수업 : %s\n\n",
                student.getName(), student.getAge(),student.getClasses());
    }
    return result;
    
}

 

  • 실행 결과

 

저작자표시 변경금지 (새창열림)

'Spring Boot' 카테고리의 다른 글

[Spring Boot] 원하는 시간에 특정 코드 자동 실행시키기 (@Scheduled)  (0) 2024.03.26
[Spring Boot] JSON String , Object 변환 (JSONParser, Gson, object-mapper)  (0) 2024.03.16
[Spring Boot] JaCoCo로 테스트 커버리지 확인  (3) 2024.01.30
[Spring Boot] 로그인 기능 구현 (8) - 페이스북 로그인 (OAuth 2.0)  (0) 2024.01.14
[Spring Boot] 로그인 기능 구현 (7) - 네이버 로그인 (OAuth 2.0)  (1) 2024.01.14
  1. 1. JSON 이란
  2. 2.  기본 클래스 및 예제 설명
  3. 2-1. Student
  4. 2-2. StudentDto
  5. 2-3. 예제 설명
  6. 3. 단일 객체 송신
  7. 4. 다중 객체 송신
  8. 5. 단일 객체 수신
'Spring Boot' 카테고리의 다른 글
  • [Spring Boot] 원하는 시간에 특정 코드 자동 실행시키기 (@Scheduled)
  • [Spring Boot] JSON String , Object 변환 (JSONParser, Gson, object-mapper)
  • [Spring Boot] JaCoCo로 테스트 커버리지 확인
  • [Spring Boot] 로그인 기능 구현 (8) - 페이스북 로그인 (OAuth 2.0)
공대생안씨
공대생안씨
전자공학과 학부생의 코딩 일기
티스토리
|
로그인
공대생안씨
공대생의 코딩 일기
공대생안씨
글쓰기
|
관리
전체
오늘
어제
  • All Categories (153)
    • Spring Boot (46)
      • JPA (7)
      • Lombok (2)
    • Java (21)
    • DevOps (3)
      • CI,CD (8)
      • Monitoring (2)
    • Database (7)
      • MySQL (5)
      • MongoDB (1)
      • H2 (1)
    • Trouble Shooting (5)
    • FE (4)
    • IntelliJ (3)
    • Git (3)
    • Algorithm (41)

블로그 메뉴

  • 홈
  • 태그
  • Github

공지사항

인기 글

hELLO · Designed By 정상우.v4.2.2
공대생안씨
[Spring Boot] JSON 객체 송수신 예제
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.