JSON에서 숫자는 int 또는 long과 같은 특정한 정수형 타입이 정해져 있지 않습니다.
즉, JSON 내부에서 "price": 10000과 같은 값은 특정 int나 long으로 저장된 것이 아니라 Number 타입으로 저장됩니다.
JSON.simple 라이브러리는 JSON의 Number 타입을 Java의 Long으로 변환하는 방식이 기본 설정입니다.
이유: JSON에는 int와 long을 구분하는 개념이 없으므로, JSON.simple에서는 정수를 기본적으로 Long으로 변환하여 저장합니다.
Reader reader = new InputStreamReader(
getClass().getClassLoader().getResourceAsStream("drink-menu.json")
);
JSONArray jsonArray = (JSONArray) parser.parse(reader);
getResourceAsStream("drink-menu.json")
→ 클래스패스(src/main/resources/) 에서 "drink-menu.json" 파일을 찾음
new InputStreamReader(...)
→ InputStream을 Reader로 변환하여 JSON 데이터를 읽을 수 있도록 함
parser.parse(reader)
→ JSON.simple의 JSONParser를 사용하여 JSON을 파싱
→ 결과는 JSON 배열(JSONArray) 형태
이후 사용 예시)
int number = ((Long) jsonObject.get("number")).intValue();