JAVA January 02, 2021

java-05 JSON 이란

Words count 3.7k Reading time 3 mins.

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);

    }

}
0%