본문 바로가기

[Web] JSON (gson)

by 커피는아아 2021. 4. 20.
반응형

 

JSON (javaScript object Notation)

  • - 경량의 DATA-교환 형식이다
  • - 경량의 DATA-표기법 이다.
  • - 특징
  • - 사람이 읽고 쓰기 쉽다.
  • - 기계로 분석하고 생성하기 쉽다.(코드가 단순해진다.)
  • - 프로그램언어로부터 완전히 독립적이다.
  • - 서로 다른 시스템간의 데이터교환에 이상적인 DATA-교환 형식이다.
  • - 형식
  • - Object 표기법

 

{ name:value, name:value, name:value}

 

- name/value쌍으로 구성된 콜렉션 ← 자바의 ValueObject, Map

- name은 문자열만 가능

- value는 문자열, 숫자, Object, Array, true, false, null

- 작성예

public Book {

int no; String title; String writer; int price;

}



{"no":10, "title":"이것이 자바다", "writer":"홍길동", "price":31000}

public class Team {

String name; List<String> members;

}

{"name":"트와이스","members":["나연","정연","모모","사나","지효","미나","다현","채영","쯔위"]}



public class Student {

String name; Major major;

}



public class Major {

String name; String grade;

}



{"name":"홍길동","major":{"name":"전자공학","grade":"석사"}}



Map<String, Object> map = new HashMap<String, object>();

map.put("keyword","자바");

map.put("records",3);

map.put("items", books) <---- List<Book> books = bookDao.searchBooks(title);



{"keyword":"자바",

"records":3,

"items":[

{"title":"이것이자바다", "publisher":"한빛미디어"}

{"title":"", "publisher":"한빛미디어"}

{"title":"이것이자바다", "publisher":"한빛미디어"}

]

}

 

- Array 표기법

- [ value, value, value ]

- 값들의 순서화된 리스트 ← 자바의 배열/List, 자바스크립트의 배열

- 작성예

 

String[] names = {"김유신", "강감찬", "홍길동"}

 

'["김유신", "강감찬", "홍길동", "이순신"]'

 

public class Category {

 

int no; String name;

 

}

 

List<Category> categories = categoryDao.getAllCategories();

 

[{"no":100, "name":"가구"}, {"no":"200", "name":"가전제품"}]

 

gson(구글에서 만든 자바 객체를 json형태로 바꾸는 걸 지원하는 라이브러리)

 

자바와 자바스크립트에서 JSON

 

- 자바의 VO, Map, 배열, List 등에 저장된 데이터를 다른 시스템으로 전달할 때 JSON텍스트로 변환해서 전달 할 수 있다.

- 자바의 VO, Map, 배열, List를 JSON 텍스트로 변환할 때 다양한 라이브러리를 사용할 수 있다.

 

(google-gson, json-simple 등)

 

- 자바스크립트는 JSON.parse()와 JSON.stringify()를 사용 간단하게 JSON 표기법의 텍스트를 자바스크립트 객체와 배열로 변경할 수 있고,

 

자바스크립트의 객체 및 배열을 JSON표기법의 텍스트로 변경할 수 있다.