부트캠프

자료구조/알고리즘 - JSON

hunm719 2023. 1. 13. 22:14

1.JSON(JavaScript Object Notation)
 -데이터 교환을 위해 만들어진 객체 형태의 포맷
 -서로 다른 프로그램끼리 데이터를 교환할 수 있도록 매개함

 -jackson라이브러리에서 제공하는 ObjectMapper 클래스를 사용하여 객체를 JSON형태로 변경하는 방법
  *이외에도 다양한 방법이 있으니 추후 검색해볼 것

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Map<StringString> message = new HashMap<>(){{
      put("sender""김코딩");
      put("receiver""박해커");
      put("message""밥먹을래?");
      put("createdAt""2021-01-12,10:10:10");
    }};
 
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(message);
 
System.out.println(json);
/*
{"createdAt":"2021-01-12,10:10:10","receiver":"박해커","sender":"김코딩","message":"밥먹을래?"}
*/
cs

 *위의 코드 처럼 writeValueAsString을 사용해 JSON형태로 변경하는 과정을 직렬화(Serialize)라고 함

 -이처럼, 직렬화된(Serialized) JSON의 타입은 문자열이고, 발신자는 이를 수신자에게 보낼 수 있음.
 -수신자는 받은 JSON을 다시 객체의 형태로 변환하여 읽을 수 있음.

1
2
3
4
5
6
7
8
ObjectMapper mapper = new ObjectMapper();
String json = "{\"createdAt\":\"2021-01-12,10:10:10\",\"receiver\":\"박해커\",\"sender\":\"김코딩\",\"message\":\"밥먹을래?\"}";
 
Map<StringString> deserializedData = mapper.readValue(json, Map.class);
System.out.println(deserializedData);
/*
{createdAt=2021-01-12,10:10:10, receiver=박해커, sender=김코딩, message=밥먹을래?}
*/
cs

 *위의 코드 처럼 readValue를 사용해 문자열을 객체 형태로 변환하는 과정을 역직렬화(Deserialize)라고 함.
 

직렬화와 역직렬화

 -이처럼, JSON은 서로 다른 프로그램 사이에서 데이터를 교환하기 위한 포맷으로, 자바스크립트을 포함한 많은 언어에서 범용적으로 사용되고 있음.

 

 

 

 

이미지 및 내용 출처 - code states

'부트캠프' 카테고리의 다른 글

자료구조/알고리즘 - Tree, Graph, Binary  (1) 2023.01.17
자료구조/알고리즘 - Stack, Queue  (0) 2023.01.16
자료구조/알고리즘 - 재귀 함수  (0) 2023.01.12
Java - Thread, JVM  (0) 2023.01.10
Java - 파일 입출력(I/O)  (0) 2023.01.09