일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- O(log n)
- ubuntu
- AOP
- 스키마 설계
- 배열 탐색
- 탐욕 알고리즘
- ubuntu passwd
- JAVA 재귀함수
- set-version
- ubuntu 패스워드
- Java
- 리눅스 사용권한
- 자료구조
- 함수형 인터페이스
- http 응답코드
- N:N
- Spring MVC
- Spring
- root passwd
- file i/o
- Spring 예외처리
- RestControllerAdvice
- git workflow
- char to int
- 코드스테이츠
- mapstruct
- 스키마 디자인
- custom exception
- git 설정
- REST HTTP API
Archives
- Today
- Total
개발소설
[JAVA] JSON, ObjectMapper 본문
JSON (JavaScript Object Notation)
- 데이터 교환을 위해 만들어진 객체 형태의 포맷
- 서버와 클라이언트, 서로 다른 언어, 서로 다른 플랫폼등에서 통일된 데이터를 교환하기 위해 사용
- 데이터를 보내는곳에서 JSON형식으로 만들어 보내고 데이터를 받는곳에서 JSON형식을 자신의 플랫폼에 맞게 해석하여 사용 한다.
- JavaScript 객체 표기법의 부분집합이기 때문에 웹브라우저 레벨에서 쉽게 해석할 수 있으며, 모양과 규칙 자체가 단순한 관계로 다른 언어에서 구현하기도 쉽다. 그래서 오늘날 사용되는 거의 모든 프로그래밍 언어에서 사용가능하다.
- key : value 형식으로 되어있다.
JSON의 기본 규칙
- 자바스크립트의 객체와 미묘하게 다른 규칙이 있다.
JSON | JavaScript 객체 | |
키 | 반드시 쌍따옴표를 붙여야한다. {"key":"value"} |
따옴표 없이 사용가능 { key : "value" } |
문자열 value | 반드시 쌍따옴표를 붙여야한다. {"key":"value"} |
어떠한 형태의 따옴표도 사용가능 { key : 'value' } |
공백 | 공백이 없어야한다. {"key":"value"} |
공백가능 { "key" : "value" } |
ObjectMapper
- JAVA의 객체(Object)를 JSON형태로 바꿔주거나 JSON형태를 JAVA의 객체(Object)로 바꿔주는 클래스이다.
- jackson 라이브러리에서 제공한다.
- 객체를 JSON형태로 변환하는것을 직렬화(serialize) JSON형태를 객체로 바꾸는것을 역직렬화(deserialize)
ObjectMapper 사용 예제
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
public class JsonEx {
public static void main(String[] args) throws JsonProcessingException {
HashMap<String, Integer> data = new HashMap<>(){{
put("Messi", 10);
put("Son", 7);
put("Haaland", 9);
put("Salah", 11);
}};
ObjectMapper mapper = new ObjectMapper();
// 직렬화 writeValueAsString() 사용
String json = mapper.writeValueAsString(data);
System.out.println("Json : "+json);
// 역직렬화 readValue() 사용
HashMap<String, Integer> newData = mapper.readValue(json, HashMap.class);
System.out.println("Object : "+newData);
}
}
/*
Json : {"Son":7,"Haaland":9,"Salah":11,"Messi":10}
Object : {Son=7, Haaland=9, Salah=11, Messi=10}
*/
'자바' 카테고리의 다른 글
[JAVA] 문자를 숫자로 변경 (char to int) (0) | 2023.03.28 |
---|---|
JVM (Java Virtual Machine) (0) | 2023.03.11 |
[JAVA] 스레드(Thread) (0) | 2023.03.10 |
[JAVA] 스트림(Stream) (0) | 2023.03.10 |
[JAVA] 파일 입출력(I/O) (0) | 2023.03.09 |
Comments