[Java] JSON

최우형·2023년 3월 15일
1

Java

목록 보기
20/24

📌JSON

JSON은 JavaScript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷이다.

JSON은 서로 다른 프로그램 사이에서 데이터를 교환하기 위한 포맷

Map<String, String> message = new HashMap<>(){{
      put("sender", "김코딩");
      put("receiver", "박해커");
      put("message", "밥먹을래?");
      put("createdAt", "2021-01-12,10:10:10");
    }};

이런 식을 전달하면 Java를 사용하지 않는 프로그램에서 데이터를 정확하게 파악할 수 없다.

jackson 라이브러리에서 제공하는 ObjectMapper 클래스를 사용하여 JSON형태로 변경하는 방법이 있다.

ObjectMapper 예시

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(message);

System.out.println(json);
//
{"createdAt":"2021-01-12,10:10:10","receiver":"박해커","sender":"김코딩","message":"밥먹을래?"}


//원래는 이렇게 나옴
{createdAt=2021-01-12,10:10:10, receiver=박해커, sender=김코딩, message=밥 먹을래?}

writeValueAsString하는 이 과정을 직렬화(serialize)라고 한다.

직렬화한 문자열을 받으면 다시 객체의 형태로 만드는 법

ObjectMapper mapper = new ObjectMapper();
String json = "{\"createdAt\":\"2021-01-12,10:10:10\",\"receiver\":\"박해커\",\"sender\":\"김코딩\",\"message\":\"밥먹을래?\"}";

Map<String, String> deserializedData = mapper.readValue(json, Map.class);
System.out.println(deserializedData);
//
{createdAt=2021-01-12,10:10:10, receiver=박해커, sender=김코딩, message=밥먹을래?}

readValue를 적용하는 이 과정을 역직렬화(deserialize)한다고 한다.

인풋 - 직렬화 - 역직렬화

profile
프로젝트, 오류, CS 공부, 코테 등을 꾸준히 기록하는 저만의 기술 블로그입니다!

0개의 댓글