JSON 배열은 대괄호로 묶인 값들의 순서 있는 집합입니다. 즉, '['로 시작해서 ']'로 끝나며, 배열 내의 값들은 쉼표(,)로 구분됩니다.
JSON 배열 예시
{
"books": ["Java", "JavaFX", "Hbase", "Cassandra", "WebGL", "JOGL"]
}json-simple은 JSON 객체를 처리하기 위한 경량 라이브러리입니다. 이 라이브러리를 사용하면 Java 프로그램으로 JSON 문서의 내용을 읽거나 쓸 수 있습니다.
JSON-Simple Maven 의존성 추가
JSON-simple 라이브러리를 사용하려면 먼저 다음과 같은 Maven 의존성을 프로젝트에 추가해야 합니다.
<dependencies>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>위 코드를 pom.xml 파일 끝부분에 있는 <dependencies></dependencies> 태그 안에 붙여넣으면 됩니다. (</project> 태그 앞에 위치시키세요.)
JSON 배열 생성 절차
Java 프로그램으로 JSON 파일 안에 배열을 생성하는 과정은 다음과 같습니다.
1. JSONObject 객체 생성
먼저 json-simple 라이브러리의 JSONObject 클래스를 인스턴스화합니다.
// JSONObject 객체 생성 JSONObject jsonObject = new JSONObject();
2. 키-값 쌍 삽입
put() 메서드를 사용하여 필요한 키-값 쌍을 JSON 객체에 추가합니다.
jsonObject.put("key", "value");3. JSONArray 생성 및 요소 추가
JSONArray 클래스를 인스턴스화하여 JSON 배열을 만들고, add() 메서드로 배열에 요소를 하나씩 추가합니다.
JSONArray array = new JSONArray();
array.add("element_1");
array.add("element_2");
array.add("element_3");4. JSON 객체에 배열 추가
필요한 모든 요소를 추가한 후, put() 메서드를 사용하여 배열을 JSON 문서에 넣습니다.
jsonObject.put("contact", array);5. 파일에 작성
FileWriter 클래스를 사용하여 생성된 JSON 객체를 파일에 저장합니다.
FileWriter file = new FileWriter("E:/json_array_output.json");
file.write(jsonObject.toJSONString());
file.close();전체 예제 코드
다음 Java 프로그램은 배열을 포함하는 JSON 객체를 생성하고, 이를 json_array_output.json이라는 파일에 작성합니다.
import java.io.FileWriter;
import java.io.IOException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class WritingJSONArray {
public static void main(String args[]) {
// JSONObject 객체 생성
JSONObject jsonObject = new JSONObject();
// JSON 객체에 키-값 쌍 삽입
jsonObject.put("ID", "1");
jsonObject.put("First_Name", "Krishna Kasyap");
jsonObject.put("Last_Name", "Bhagavatula");
jsonObject.put("Date_Of_Birth", "1989-09-26");
jsonObject.put("Place_Of_Birth", "Vishakhapatnam");
jsonObject.put("Country", "25000");
// JSON 배열 생성
JSONArray array = new JSONArray();
array.add("e-mail: krishna_kasyap@gmail.com");
array.add("phone: 9848022338");
array.add("city: Hyderabad");
array.add("Area: Madapur");
array.add("State: Telangana");
// JSON 객체에 배열 추가
jsonObject.put("contact", array);
try {
FileWriter file = new FileWriter("E:/json_array_output.json");
file.write(jsonObject.toJSONString());
file.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("JSON file created: " + jsonObject);
}
}실행 결과
프로그램을 실행하면 다음과 같은 출력이 콘솔에 표시됩니다.
JSON file created: {
"First_Name":"Krishna Kasyap",
"Place_Of_Birth":"Vishakhapatnam",
"Last_Name":"Bhagavatula",
"contact":[
"e-mail: krishna_kasyap@gmail.com",
"phone: 9848022338",
"city: Hyderabad",
"Area: Madapur",
"State: Telangana"],
"Country":"25000",
"ID":"1",
"Date_Of_Birth":"1989-09-26"}생성된 JSON 파일의 내용을 열어보면 위와 같이 개인 정보와 함께 'contact'라는 키 아래에 연락처 정보가 배열 형태로 저장된 것을 확인할 수 있습니다.
참고로 JSON 객체는 순서를 보장하지 않기 때문에, 출력 결과에서 키들이 입력한 순서와 다르게 나타날 수 있습니다. 또한 실무에서는 try-with-resources 구문을 사용하여 FileWriter를 자동으로 닫아주는 것이 더 안전한 방식입니다.