JSON(JavaScript Object Notation)은 데이터를 주고받을 때 사용하는 간단하고 가벼운 언어입니다. 마치 사람들이 편지를 주고받듯이, 컴퓨터끼리도 데이터를 주고받아야 하는데, 이때 JSON을 사용하면 서로 쉽게 이해할 수 있어요.
예를 들어, 친구에게 사과를 3개 주고 싶다고 할 때, 우리는 "사과 3개"라고 말하죠? JSON도 비슷하게, 데이터를 이름(key)과 값(value)의 쌍으로 나타냅니다.
{
"과일": "사과",
"갯수": 3
}
위 JSON 데이터는 "과일"이라는 이름에 "사과"라는 값이, "갯수"라는 이름에 3이라는 값이 연결되어 있다는 것을 의미합니다.
Jackson 라이브러리는 Java 프로그램에서 JSON 데이터를 쉽게 다룰 수 있도록 도와주는 도구입니다. 마치 번역기를 사용해서 다른 나라 말을 번역하듯이, Jackson 라이브러리를 사용하면 JSON 데이터를 Java 객체로 바꾸거나, Java 객체를 JSON 데이터로 바꿀 수 있어요.
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 메소드 생략
}
설명:
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 메소드 생략
}
설명:
초등학생도 이해할 수 있도록:
참고: 위 예제는 매우 간단한 예시이며, 실제 개발에서는 더 복잡한 JSON 구조와 다양한 기능을 사용하게 됩니다.
핵심: JSON은 데이터를 주고받을 때 사용하는 간단한 언어이고, Jackson 라이브러리는 Java에서 JSON을 다루는 데 사용되는 도구입니다.
API, JPA, MyBatis: 언제 어떤 것을 사용해야 할까요? (2) | 2025.01.17 |
---|---|
스프링 MVC를 이용한 API 개발: 주요 어노테이션 (0) | 2025.01.17 |
스프링에서 index.html 대신 .do로 요청하는 방법 (1) | 2025.01.16 |
API 구조 설계 수정 제안 (0) | 2025.01.16 |
스프링 구조도 및 파일 설명 (0) | 2025.01.16 |