-
JSON 마셜링/언마셜링이란?컴퓨터과학 2024. 5. 23. 15:41728x90반응형
JSON 마셜링/언마셜링이란?
**JSON 마셜링(Marshalling)**과 **언마셜링(Unmarshalling)**은 데이터를 객체와 JSON 포맷 사이에서 변환하는 과정입니다.
- 마셜링(Marshalling): 자바 객체를 JSON 문자열로 변환하는 과정.
- 언마셜링(Unmarshalling): JSON 문자열을 자바 객체로 변환하는 과정.
이러한 변환을 통해 자바 객체를 JSON 형식으로 외부 시스템에 전달하거나, JSON 형식의 데이터를 자바 객체로 변환하여 사용하게 됩니다.
주요 라이브러리
자바에서 JSON 마셜링/언마셜링을 수행하는 대표적인 라이브러리로는 다음과 같은 것들이 있습니다:
- Jackson: 가장 널리 사용되는 JSON 처리 라이브러리 중 하나.
- Gson: Google에서 제공하는 JSON 처리 라이브러리.
- org.json: 간단한 JSON 파싱을 위한 라이브러리.
JSON 마셜링 예제 (Java)
자바 객체를 JSON 문자열로 변환 (마셜링)
import com.fasterxml.jackson.databind.ObjectMapper; class User { private String name; private int age; private String email; // Constructors, getters and setters public User() {} public User(String name, int age, String email) { this.name = name; this.age = age; this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } public class MarshallingExample { public static void main(String[] args) { try { User user = new User("John Doe", 30, "john.doe@example.com"); // ObjectMapper 인스턴스 생성 ObjectMapper objectMapper = new ObjectMapper(); // 자바 객체를 JSON 문자열로 변환 String jsonString = objectMapper.writeValueAsString(user); System.out.println("JSON String: " + jsonString); } catch (Exception e) { e.printStackTrace(); } } }
JSON 문자열을 자바 객체로 변환 (언마셜링)
import com.fasterxml.jackson.databind.ObjectMapper; public class UnmarshallingExample { public static void main(String[] args) { try { String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"email\":\"john.doe@example.com\"}"; // ObjectMapper 인스턴스 생성 ObjectMapper objectMapper = new ObjectMapper(); // JSON 문자열을 자바 객체로 변환 User user = objectMapper.readValue(jsonString, User.class); System.out.println("User Name: " + user.getName()); System.out.println("User Age: " + user.getAge()); System.out.println("User Email: " + user.getEmail()); } catch (Exception e) { e.printStackTrace(); } } }
728x90반응형'컴퓨터과학' 카테고리의 다른 글
스핀락,뮤텍스,세마포에 대해 각각 정의 및 차이 with 예제 코드 java (0) 2024.05.27 컨슈머 스레드(Consumer Thread)와 프로듀서 스레드(Producer Thread) (0) 2024.05.23 cpu바운드 프로그램 멀티쓰레딩에 최적의 스레드 개수 결정 방법 및 멀티쓰레딩 개발에 주의할점 (0) 2024.05.22 프로세스 컨텍스트 스위칭과 스레드 컨텍스트 스위칭 정의 및 차이 with 예제 python (0) 2024.05.22 단일프로세스,멀티프로그래밍,멀티태스킹,멀티프로세싱,컨텍스트 스위칭,스레드,멀티쓰레드란 무엇인가? (0) 2024.05.17