JAVA

JSON

illho 2024. 2. 20. 17:59

 

JSON이란?

 

JavaScript Object Notation 의 약자로 줄여서 JSON 이라 한다.

JSON은 네트워크를 통해 데이터를 주고받는 데 자주 사용되는 경량의 데이터 형식 이다.

 

JSON의 기본적인 형태

{ KEY : VALUE }

 

JSON은 key와 value의 쌍으로 이루어져 있는 구조이다.

key와 value 사이에는 콜론(:)이 들어간다.

 

 여러개의 JSON 형태

{ 
  "A" : "value1", 
  "B" : "value2" 
}

 

{
  "A" : { "a" : "value1" },
  "B" : [ "arr1", "arr2", "arr3"]
 }

 

객체(Object)는 중괄호 {} 로 묶어서 표현하고, 배열(Array)은 대괄호 [] 로 묶어서 표현한다.

 

JAVA로  JSON 다뤄보기

 

json 예시

{
    "order_id" : "order1",
    "order_name" : "orderName1",
    "order_info" : {
    	            "order_country" : "country1",
                    	"order_size" : 10
    	          }
    "item_list" : [
    	        {
                    "item_code" : "code1",
                    "item_name" : "name1"
    	        },
                    {
                    "item_code" : "code2",
                    "item_name" : "name2"
                    }
                  ]
}

 

 

gradle에 dependencies를 추가했다.

implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'

 

UtilJson.class 생성

 

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class UtilJson {

    public static JSONObject createJsonData() {
        JSONObject jsonInfo = new JSONObject();

        jsonInfo.put("order_id", "order1");
        jsonInfo.put("order_name", "orderName1");

        JSONObject jsonObjectInfo = new JSONObject();
        jsonObjectInfo.put("order_country","country1");
        jsonObjectInfo.put("order_size",10);
        jsonInfo.put("order_info",jsonObjectInfo);

        JSONArray itemList = new JSONArray();

        JSONObject item1 = new JSONObject();
        item1.put("item_code","code1");
        item1.put("item_name","name1");
        itemList.add(item1);

        JSONObject item2 = new JSONObject();
        item2.put("item_code","code2");
        item2.put("item_name","name");
        itemList.add(item2);

        jsonInfo.put("item_list",itemList);

        return jsonInfo;
    }

    public static String jsonToString(JSONObject jsonObject) {
        return jsonObject.toString();
    }

}

 

 

jsonTest.class생성

 

import org.json.simple.JSONObject;

public class jsonTest {

    public static void main(String[] args) {

        JSONObject jsonObject = UtilJson.createJsonData();
        String str = UtilJson.jsonToString(jsonObject);

        System.out.println("str = " + str);

    }

}

 

 

실행 결과

 

 

str = {"item_info":{"order_size":10,"order_country":"country1"},"item_list":[{"item_code":"code1","item_name":"name1"},{"item_code":"code2","item_name":"name"}],"order_id":"order1","order_name":"orderName1"}

 

 

 

JSON 파싱하기

 

 public static void parseJson(String jsonStr) {

        JSONParser jsonParser = new JSONParser();

        try {
            JSONObject order = (JSONObject) jsonParser.parse(jsonStr);

            System.out.println("order_id = " + order.get("order_id"));
            System.out.println("order_name = " + order.get("order_name"));

            JSONObject orderInfo = (JSONObject) order.get("order_info");
            System.out.println("order_size = " + orderInfo.get("order_size"));
            System.out.println("order_country = " + orderInfo.get("order_country"));

            JSONArray itemList = (JSONArray) order.get("item_list");
            for (Object itemInfo : itemList){
                System.out.println("itemInfo = " + ((JSONObject)itemInfo).get("item_code"));
                System.out.println("item_name = " + ((JSONObject) itemInfo).get("item_name"));
            }

        }catch (Exception e ){
            e.printStackTrace();
        }

    }

 

import org.json.simple.JSONObject;

public class jsonTest {

    public static void main(String[] args) {

        JSONObject jsonObject = UtilJson.createJsonData();
        String str = UtilJson.jsonToString(jsonObject);
        UtilJson.parseJson(str);

        //System.out.println("str = " + str);


    }

}

 

 

실행결과