JSON(제이슨 , JavaScript Object Notation)
객체를 표현하는 방식으로 속성-값 쌍으로 이루어진 데이터를 전달하고 인간이 읽을 수 있는 데이터 교환용으로 설계된 개방형 표준 포맷이다.
JSON의 장점
1.데이터의 크기가 작다.
XML의 경우 태그를 사용해야 하지만 JSON은 태그를 사용하지 않아 텍스트의 사이즈가 줄어듦
2.사람이 읽고 쓰기에 용이하다.
괄호, 세미콜론과 같은 간단한 기호, 순수 텍스트로 구성되어 있음
3.다양한 언어에서 사용 가능하고 플랫폼에 독립적이다.
자바, 자바스크립트, C, C++ 등 다양한 언어에서 구애받지 않음, 이기종 시스템 간에 데이터 교환 방식
JSON 규칙
- JSON 객체의 시작과 끝은 중괄호로 표기
- JSON 객체의 속성은 Key/Value 형태
- 속성 Key/Value는 콜론을 기준으로 구분
{ "name" : "Jeffrey" , "age": 30 , "isMale" : true }
JSON 배열
여러 개의 데이터를 하나로 표현하기 위해서 JSON Array를 사용한다.
- JSON 배열의 시작과 끝은 대괄호를 사용
- JSON 배열의 멤버 변수들은 콤마를 사용해서 구분
- JSON 배열의 구성 아이템으로 JSON 객체도 넣을 수 있음
- JSON 객체의 value 부분에는 JSON 객체를 넣을 수 있음
[ { "name" : "Jeffrey" , "age": 30 } , { "name" : "Jone" , "age : 28 } ]
json-simple 라이브러리
json-simple 라이브러리 주요 클래스
org.json.simple class JSONObject
JSON 객체를 추상화한 클래스로 HashMap 클래스를 상속받고 있다.
HashMap에서 사용하는 모든 메소드 사용 가능
메서드 | 내용 |
public String toJSONString() | JSONObject 객체의 데이터를 JSON 문자열로 반환 |
public static String toJSONString(Map map) | 매개변수로 받은 Map 객체를 JSON 문자열로 변환해서 반환 |
public String toString | JSONObject 객체의 데이터를 JSON 문자열로 반환 |
public static String toString(String key, Object value) | key/value 객체들을 JSONObject의 멤버 변수 형태로 반환 |
public static void writeJSONString(Map map, Writer out) | 매개변수 Map 객체의 데이터를 Writer 객체인 out에 적는다. |
public static String escape(String s) | JSON의 특수 문자를 변환하지 않고 있는 그대로 문자열 반환 |
org.json.simple class JSONArray
JSON 배열을 추상화한 클래스로 ArrayList 클래스를 상속하고 있다.
ArrayList에서 사용하는 모든 메소드 사용 가능
메서드 | 내용 |
public String toJSONString | JSONArray 객체의 데이터를 JSON 문자열로 반환 |
public static String toJSONString(List list) | list의 데이터를 JSON 문자열로 반환 |
public String toString() | JSONArray 객체의 데이터를 JSON 문자열로 반환 |
public void writeJSONString(Writer out) | JSONArray의 데이터를 Writer out 객체를 통해 쓴다. |
public static void writeJSONString(List list, Writer out) | list의 데이터를 Writer out객체를 통해 쓴다. |
org.json.simple.parser class JSONParser
JSON 데이터를 파싱하는 기능을 구현한 클래스, JSON 문자열 파싱
parse() 메서드는 여러가지 매개변수를 받은 형태로 오버로딩
JSON 문자열을 파싱해서 JSONArray나 JSONObject 객체로 반환하는 기능 제공
org.json.simple class JSONValue
JSON 데이터를 다루기 위한 몇 가지 메소드들을 제공
객체를 JSONValue값으로 변환시켜 주는 역할
org.json.simple.parser class ParseException
JSONParser 클래스를 사용해서 파싱할 때 발생할 수 있는 예외를 추상화한 클래스