728x90
학습 목표
Java에서 제공하는 데이터 타입을 JSON으로 변경하는 기능 구현
- null을 입력받을 경우, 알맞은 형태의 JSON으로 변환
- Boolean 타입을 입력받을 경우, 알맞은 형태의 JSON으로 변환
- String 타입을 입력받을 경우, 알맞은 형태의 JSON으로 변환
- 배열을 입력받을 경우, 알맞은 형태의 JSON으로 변환
- HashMap을 입력받을 경우, 알맞은 형태의 JSON으로 변환
- 배열, Map 타입의 요소를 가진 배열이나 Map을 입력받을 경우, 알맞은 형태의 JSON으로 변환
JSON
JSON이란?
JavaScript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷이다.
네트워크를 통해, 어떤 객체 내용을 다른 프로그램에게 전송할때 운영체제와 프로그램 언어가 다르다면 바로 사용할 수 없다
객체가 전송 가능하려면, 메시지를 보내는 발신자와 메시지를 받는 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야한다.
JSON 사용법
객체를 JSON의 형태로 변환하거나 JSON을 객체의 형태로 변환하는 방법으로 데이터를 정확하게 전달할 수 있다.
여러 방법이 존재하지만, jackson 라이브러리에서 제공하는 ObjectMapper 클래스를 사용하여 JSON 형태로 변경하는 방법을 알아보자.
JSON형태로 변환하는 방법
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(message);
System.out.println(json);
/*
{"createdAt":"2021-01-12,10:10:10","receiver":"박해커","sender":"김코딩","message":"밥먹을래?"}
*/
writeValueAsString(objectMapperName) = 직렬화(serialize), 데이터를 JSON으로 변환하는 메서드
JSON형태를 다시 객체로 변환하는 방법
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(jsonName, Map.class) = 역직렬화(deserialize), JSON을 데이터로 변환하는 메서드
JSON의 기본 규칙
- 반드시 key에 쌍따옴표를 붙여야 함
- 반드시 문자열 값(Value)을 쌍따옴표로 감싸야 함
- key-value (쌍) 사이에 공백이 없어야 함
728x90
'코드 스테이츠' 카테고리의 다른 글
코드 스테이츠 - 자료 구조 2(Tree/BST/Graph) (0) | 2023.05.15 |
---|---|
코드 스테이츠 - 자료구조 1(Stack/ Queue) (0) | 2023.05.15 |
코드 스테이츠 - 재귀함수 (1) | 2023.05.10 |
코드 스테이츠 - Section1 회고 (0) | 2023.05.09 |
코드 스테이츠 - Java 심화(Effective) 3 (0) | 2023.05.08 |