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);
}
}
실행결과