JSON 이란
JSON은 JavaScript Object Notation의 약자에요. 줄여서 JSON. 우리말로는 “제이슨”이라고 하죠.
왜 다들 JSON, JSON거리는 걸까요?
JSON
은 네트워크를 통해 데이터를 주고받는 데 자주 사용되는 경량의 데이터 형식
입니다.
JSON_Object
package ex;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class Ex01_JSONObject {
public static void main(String[] args) {
// 예제로 사용할 JSON
// {"name":"emily", "age":20, "isAdult" : true}
// OpenAPI에서 받아온 데이터로 생각
String strJSON = "{\"name\":\"emily\", \"age\":20, \"isAdult\" : true}";
// 사용할 라이브러리 : json-simple-1.1.1.jar
// 라이브러리 역할 : JSON데이터를 JAVA의 Map으로 처리
// 1. JSON Parser: 구문분석기 생성
JSONParser parser = new JSONParser();
// 2. JSON Object: parser가 분석한 결과를 저장할 객체
JSONObject obj = null;
// 3. parsing: 구문분석
try {
obj = (JSONObject) parser.parse(strJSON);
} catch (ParseException e) {
e.printStackTrace();
}
// 4. JSON Object는 Map과 사용법이 같다.
// JSONObject 클래스를 Map 인터페이스를 구현해서 만들었으므로
System.out.println(obj.get("name")); // get("key")
System.out.println(obj.get("age")); // get("key")
System.out.println((boolean)obj.get("isAdult") ? "성인" : "미성년자"); // get("key")
}
}
JSON_Array
public class Ex02_JSONArray {
public static void main(String[] args) {
// 예제로 사용할 JSON
// [ {}, {} ]
// [{"name":"emily", "age" : 20, "isAdult" : true}, {"name":"james", "age" : 18, "isAdult" : false}]
String strJSON = "[{\"name\":\"emily\", \"age\" : 20, \"isAdult\" : true}, {\"name\":\"james\", \"age\" : 18, \"isAdult\" : false}]";
// 1. JSON Parser 생성
JSONParser parser = new JSONParser();
// 2. JSON Array 준비
JSONArray list = null;
// 3. parsing
try {
list = (JSONArray) parser.parse(strJSON);
} catch (ParseException e) {
e.printStackTrace();
}
// JSONArray는 Java의 ArrayList와 사용법이 같다.
System.out.println(list.get(0)); // 첫번째
System.out.println(list.get(1)); // 두번째
}
}
toJSONString
public class Ex03_toJSONString {
public static void main(String[] args) {
// 1. JSON 데이터 만들기
JSONObject obj = new JSONObject();
// Map 처럼 데이터를 저장할 수 있다.
obj.put("name", "amanda");
obj.put("age", 22);
obj.put("isAdult", true);
// 2. JSON 데이터를 String으로 변환하기
String strJSON = obj.toJSONString();
System.out.println(strJSON);
}
}