Why ?
- Riot api 를 사용할 때 json기반으로 제공
- json 파일을 java로 변환시켜 데이터를 불러오는 것을 알고 싶어 검색
1. JSON (JavaScript Object Notation) ?
- 속성-값 쌍으로 이루어진 데이터 오브젝트를 읽을 수 있게 해주는 개방형 표준 포멧
- 이해하기가 쉽고 용량이 작아 XML을 대체하는 주요 데이터 포멧
- Javascript에서 객체를 만드는 표현식
- 특정 언어에 종속되지 않는다.
2. JSON 문법
- 중괄호를 통해 표현한다.
- key / value 가 존재하며 key값이나 문자열은 항상 " " 을 이용하여 표기해야 한다.
- 배열(Array)를 사용할 때는 대괄호로 표한한다.
- 쉼표(,)를 사용하여 여러 JSON 데이터를 포함시킬 수 있다.
3. Jackson(Java) Library 적용하기
- Stream API: 스트림 형식으로 데이터를 분석하고 생성하여 성능이 뛰어나다
- Tree Model: XML의 DOM처럼 Node 형태로 데이터를 다루기때문에 유연성이 좋다.
- Data Binding: POJO 기반의 자바 객체들을 JSON으로 변환시킬 수 있다.
Maven의 pom.xml 파일에 위와 같이 추가해준다.
public class MyValue {
public String name;
public int age;
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
MyValue value = mapper.readValue(new File("data.json"), MyValue.class);
// or:
value = mapper.readValue(new URL("http://some.com/api/entry.json"), MyValue.class);
// or:
value = mapper.readValue("{\"name\":\"Bob\", \"age\":13}", MyValue.class);
}
ObjectMapper로 생성자에 readValue를 통해 파일, url, json문장 등을 읽어올 수 있다.
This post leared
- xml을 대체하는 주요 포멧이고 중괄호, 대괄호, " ", key / value 등으로 구성되어 있어 매우 간단하다.
- javascript의 객체생성의 형태와 같아 새롭게 배움이 쉽다.
- jackson을 통해 java to json , json to java 로 read , write 하는 것이 가능하다.
참조
- https://nesoy.github.io/articles/2017-02/JSON
- http://tcpschool.com/json/json_basic_structure
- https://velog.io/@ym1085/JSON-%EC%82%AC%EC%9A%A9%EB%B2%95
- https://github.com/FasterXML/jackson
- https://tychejin.tistory.com/134