JSON은 경량(lightweight)이며 텍스트 기반, 언어 독립적인 데이터 교환 형식입니다. JSON은 객체(Object)와 배열(Array)이라는 두 가지 구조화된 타입을 표현할 수 있습니다. 객체는 키/값(key/value) 쌍의 순서가 없는 집합이고, 배열은 순서가 있는 값들의 나열입니다.
Java에서 Map을 JSON 객체로 변환하려면 org.json.simple.JSONValue 클래스의 정적(static) 메서드인 toJSONString()을 사용하면 됩니다.
또한 이 클래스에는 두 가지 중요한 정적 메서드가 있습니다:
- writeJSONString(): 객체를 JSON 텍스트로 인코딩하여 출력합니다.
- escape(): 특수 문자를 이스케이프 처리하며, 따옴표와
\,/,\r,\n,\b,\f,\t같은 제어 문자를 안전하게 변환합니다.
예제 코드
import java.util.*;
import org.json.simple.JSONValue;
public class ConvertMapJSONTest {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("1", "India");
map.put("2", "Australia");
map.put("3", "England");
map.put("4", "South Africa");
String jsonStr = JSONValue.toJSONString(map); // Map을 JSON으로 변환
System.out.println(jsonStr);
}
}
실행 결과
{"1":"India","2":"Australia","3":"England","4":"South Africa"}
위 예제처럼 toJSONString() 메서드에 Map 객체를 전달하기만 하면, 키와 값이 그대로 JSON 형식의 문자열로 변환됩니다. 별도의 복잡한 설정 없이 간단히 사용할 수 있어 Map 데이터를 JSON으로 직렬화해야 할 때 유용하게 활용됩니다.