JSON(JavaScript Object Notation)은 가장 널리 사용되는 데이터 교환 형식 중 하나로, 가볍고(lightweight) 특정 프로그래밍 언어에 종속되지 않는 언어 독립적(language independent)이라는 장점이 있습니다. Java에서는 org.json.Cookie 클래스가 제공하는 메서드를 활용하여 JSONObject를 쿠키(cookie) 문자열로 변환하거나, 반대로 쿠키를 JSONObject로 변환할 수 있습니다.
변환에는 다음 두 가지 핵심 메서드가 사용됩니다.
- toString(): JSONObject → 쿠키 문자열 변환
- toJSONObject(): 쿠키 문자열 → JSONObject 변환
1. JSONObject를 쿠키로 변환하기
JSONObject에 담긴 name, value, expires, path 등의 속성을 HTTP 쿠키 형식의 문자열로 직렬화하려면 Cookie.toString() 메서드를 사용합니다.
문법(Syntax)
public static java.lang.String toString(JSONObject jo) throws JSONException
예제(Example)
import org.json.Cookie;
import org.json.JSONObject;
public class JSONObjectToCookieTest {
public static void main(String args[]) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("path", "/");
jsonObject.put("expires", "Thu, 07 May 2020 12:00:00 UTC");
jsonObject.put("name", "username");
jsonObject.put("value", "Adithya");
String cookie = Cookie.toString(jsonObject);
System.out.println(cookie);
}
}
실행 결과(Output)
username=Adithya;expires=Thu, 07 May 2020 12:00:00 UTC;path=/
위 예제에서 볼 수 있듯이, JSONObject의 키-값 쌍이 세미콜론(;)으로 구분된 표준 쿠키 문자열 형태로 출력됩니다.
2. 쿠키를 JSONObject로 변환하기
반대로 쿠키 문자열을 파싱하여 JSONObject 객체로 만들 때는 Cookie.toJSONObject() 메서드를 사용합니다. 이 메서드는 쿠키 문자열에 포함된 속성들을 키-값 쌍으로 분석해 JSONObject 형태로 반환합니다.
문법(Syntax)
public static JSONObject toJSONObject(java.lang.String string) throws JSONException
예제(Example)
import org.json.Cookie;
import org.json.JSONObject;
public class ConvertCookieToJSONObjectTest {
public static void main(String args[]) {
String cookie = "username=Adithya; expires=Thu, 07 May 2020 12:00:00 UTC; path=/";
JSONObject jsonObject = Cookie.toJSONObject(cookie);
System.out.println(jsonObject);
}
}
실행 결과(Output)
{"name":"username","value":"Adithya","expires":"Thu, 07 May 2020 12:00:00 UTC","path":"/"}
마무리
이처럼 org.json.Cookie 클래스를 사용하면 별도의 복잡한 파싱 로직 없이도 JSONObject와 쿠키 문자열 간의 변환을 몇 줄의 코드로 손쉽게 처리할 수 있습니다. 웹 애플리케이션에서 세션 정보나 사용자 설정 값을 쿠키로 관리할 때 매우 유용하게 활용할 수 있습니다.