티스토리 뷰

 

경량(Lightweight)의 DATA-교환 형식이다.

속성-  || - 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해

사람이 읽을  있는 텍스트를 사용하는 *개방형 표준 포맷 이다.

 

데이터 주고 받을  트래픽을 최소화하기 위한 데이터가 들어있는 가벼운 종이 같은 개념으로 보면 된다.

시작은 JavaScript로부터 파생됐지만(그래서 JavaScript 문법) 언어 독립형 포맷이다.

수년  지배 해왔던 XML 대체   있는 주요 데이터 포맷이다.

보통 ajax rest api에서 XML , JSON 형식을 많이 보게 되는데   쓰이는 JSON  JSON 이다.

프로그래밍 언어의 제약이 거의 없기 때문에  C,JAVA,Rudy 등 거의 모든 언어에서 사용 가능하다.

 

JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용한다.

특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공한다. 제일 중요한 사용 이유는 데이터를 전송할  최소한의 용량으로 전송하기 위함이다.

 

 

1.DATA를 교환하는 형식 말 그대로 DATA 주고 받을 때, 편지를 주고 받을 때 종이를 쓰는 것처럼 

   DATA를 받을땐 JSON 형식을 사용한다.

2.JSON을 쓰는데 프로그래밍 언어의 제약이 거의 없다. C,Java,Rudy 등 여러 종류가 가능하다.

3.공식 미디어 타입(MIME 타입)은 application/json이다.

 

 

 

Json의 형식

key : value  키와 값의 쌍으로 된 형식

{ "key": "value" 
 ,"key": "value" 
 ,"key": "value"
 }

 

 

참고

https://java119.tistory.com/54

 

[JavaScript] JSON 데이터 다루기 문법 총 정리

JSON(JavaScript Object Notation)을 모른다면 선행 해야 할 글 [IT용어] JSON(JavaScript Object Notation) JSON(JavaScript Object Notation) 개념 경량(Lightweight)의 DATA-교환 형식이다. 경량(Lightweight)의 DATA-교환 형식~ 경량(Li

java119.tistory.com

 

 


 

[Java] ObjectMapper를 이용하여 JSON 파싱하기

 

ObjectMapper란?

- JSON 컨텐츠를 Java 객체로 deserialization 하거나 Java 객체를 JSON으로 serialization 할 때 사용하는 Jackson 라이브러리의 클래스이다.

- ObjectMapper를 이용하면 JSON을 Java 객체로 변환할 수 있고, 반대로 Java 객체를 JSON 객체로 serialization 할 수 있다.

 

 

Java Object → JSON

Java 객체를 JSON으로 serialization 하기 위해서는 ObjectMapper의 writeValue() 메서드를 이용한다.

여기서 주의할 점은 JSON으로 직렬화 시킬 클래스에 Getter가 존재해야 한다는 것이다.

Jackson 라이브러리는 Getter와 Setter를 이용하여 prefix를 잘라내고 맨 앞을 소문자로 만드는 것으로 필드를 식별한다.

그렇기 때문에 만약 직렬화 시킬 클래스에 Getter가 존재하지 않으면 클래스에서 필드를 식별하고 못하고 결국 값을 가져오지 못하여 에러가 발생하게 된다.

 

 

JSON → Java Object

JSON 파일을 Java 객체로 deserialization 하기 위해서는 ObjectMapper의 readValue() 메서드를 이용한다.

위와 같이 파라미터로 JSON 형태의 문자열 or 객체와 역직렬화 시킬 클래스를 넣어주면 된다.

여기서 주의할 점이 있는데, 역직렬화 시킬 클래스(여기서는 Person 클래스)에 JSON을 파싱한 결과를 전달할 생성자가 있어야 한다. 기본 생성자를 이용하였지만 생성자에 Jackson 라이브러리의 @JsonCreator 어노테이션을 쓰는 등 다양한 방법이 있다.

 

 

 

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

이 설정을 통해 JSON의 모든 데이터를 파싱하는 것이 아닌 내가 필요로 하는 데이터, 즉 내가 필드로 선언한 데이터들만 파싱할 수 있다.

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함