상세 컨텐츠

본문 제목

JSON 데이터 형식과 Jackson 라이브러리

Spring(프레임워크)

by 헬로제이콥 2025. 1. 17. 11:04

본문

RESTful API 기본 개념 학습: JSON 데이터 형식과 Jackson 라이브러리

JSON이란 무엇일까요?

JSON(JavaScript Object Notation)은 데이터를 주고받을 때 사용하는 간단하고 가벼운 언어입니다. 마치 사람들이 편지를 주고받듯이, 컴퓨터끼리도 데이터를 주고받아야 하는데, 이때 JSON을 사용하면 서로 쉽게 이해할 수 있어요.

예를 들어, 친구에게 사과를 3개 주고 싶다고 할 때, 우리는 "사과 3개"라고 말하죠? JSON도 비슷하게, 데이터를 이름(key)과 값(value)의 쌍으로 나타냅니다.

JSON
 
{
    "과일": "사과",
    "갯수": 3
}

위 JSON 데이터는 "과일"이라는 이름에 "사과"라는 값이, "갯수"라는 이름에 3이라는 값이 연결되어 있다는 것을 의미합니다.

Jackson 라이브러리란 무엇일까요?

Jackson 라이브러리는 Java 프로그램에서 JSON 데이터를 쉽게 다룰 수 있도록 도와주는 도구입니다. 마치 번역기를 사용해서 다른 나라 말을 번역하듯이, Jackson 라이브러리를 사용하면 JSON 데이터를 Java 객체로 바꾸거나, Java 객체를 JSON 데이터로 바꿀 수 있어요.

쉬운 예제: 간단한 JSON 데이터 파싱

Java
 
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonExample {
    public static void main(String[] args) throws Exception {
        // JSON 문자열
        String json = "{\"name\":\"홍길동\",\"age\":20}";

        // ObjectMapper를 이용하여 JSON 문자열을 Person 객체로 변환
        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.readValue(json, Person.class);

        // 변환된 객체의 정보 출력
        System.out.println("이름: " + person.getName());
        System.out.println("나이: " + person.getAge());
    }
}

class Person {
    private String name;
    private int age;

    // getter, setter 메소드 생략
}

설명:

  1. JSON 문자열 준비: "홍길동"이라는 이름과 20살이라는 나이를 가진 사람에 대한 정보를 JSON 형식으로 만들었습니다.
  2. ObjectMapper 생성: Jackson 라이브러리의 ObjectMapper를 생성하여 JSON과 Java 객체 간의 변환을 담당하도록 합니다.
  3. JSON 파싱: readValue 메소드를 사용하여 JSON 문자열을 Person 객체로 변환합니다. Person 클래스는 이름과 나이를 저장하는 클래스입니다.
  4. 정보 출력: 변환된 Person 객체의 이름과 나이를 출력합니다.

중급 예제: 복잡한 JSON 데이터 생성

Java
 
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.ArrayList;
import java.util.List;

public class JsonExample2 {
    public static void main(String[] args) throws Exception {
        // 학생 정보를 담을 List 생성
        List<Student> students = new ArrayList<>();
        students.add(new Student("김철수", 90));
        students.add(new Student("이영희", 85));

        // 학급 정보를 담을 객체 생성
        ClassRoom classRoom = new ClassRoom();
        classRoom.setName("1반");
        classRoom.setStudents(students);

        // ObjectMapper를 이용하여 Java 객체를 JSON 문자열로 변환
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(classRoom);

        System.out.println(json);
    }
}

class Student {
    private String name;
    private int score;

    // getter, setter 메소드 생략
}

class ClassRoom {
    private String name;
    private List<Student> students;

    // getter, setter 메소드 생략
}

설명:

  1. 학생 정보 준비: 김철수와 이영희라는 두 명의 학생 정보를 Student 객체에 저장합니다.
  2. 학급 정보 준비: 1반이라는 이름의 학급 정보를 ClassRoom 객체에 저장하고, 위에서 만든 학생 정보를 List에 담아 ClassRoom 객체에 추가합니다.
  3. JSON 생성: ObjectMapper를 이용하여 ClassRoom 객체를 JSON 문자열로 변환합니다.
  4. JSON 출력: 변환된 JSON 문자열을 출력합니다.

초등학생도 이해할 수 있도록:

  • JSON은 컴퓨터가 이해하는 편지라고 생각하면 됩니다.
  • Jackson 라이브러리는 번역기와 같아서, JSON 편지를 우리가 이해할 수 있는 말로 바꿔주거나, 우리가 하는 말을 JSON 편지로 바꿔줍니다.
  • 쉬운 예제: 친구에게 자기소개를 하는 편지를 쓰는 것과 같아요.
  • 중급 예제: 우리 반 친구들의 정보를 담은 명단을 만드는 것과 같아요.

참고: 위 예제는 매우 간단한 예시이며, 실제 개발에서는 더 복잡한 JSON 구조와 다양한 기능을 사용하게 됩니다.

핵심: JSON은 데이터를 주고받을 때 사용하는 간단한 언어이고, Jackson 라이브러리는 Java에서 JSON을 다루는 데 사용되는 도구입니다.

관련글 더보기