json형태의 데이터를 서버에서 생성하거나 웹 서비스를 통해 받아온 JSON 데이터를 파싱 해서 사용하기 위한 방법을 살펴보도록 하겠습니다.
이 모든 작업을 자바에서 하기 위해서는 파서가 있어야 합니다. 즉, 라이브러리 파일이 있어야 한다는 얘기죠. json 라이브러리는 종류도 많이 있지만 Jackson, json-simple, JSONP, GSON 등이 가장 많이 사용하는 라이브러리라 볼 수 있을 것입니다. 대용량의 json데이터를 파싱 할 때와 작은 크기의 json데이터를 파싱 할 때 속도나 성능은 각각 라이브러리마다 차이가 있습니다. 대용량이든 작은 크기의 json이든 좋은 성능으로 파싱 할 수 있도록 지원되는 라이브러리로는 json-simple이 있습니다.
우리는 json-simple라이브러리를 이용하여 작성해 보도록 하겠습니다.
우선 http://www.json.org/ 접속해 보도록 하겠습니다.
이 사이트는 json의 문법에 대한 소개와 각 언어별 파서들을 정리해 놓은 사이트 입니다.
우선 json에 대한 소개가 있고
아래로 스크롤하면 언어별 파서의 목록이 있습니다. Java: 하단의 "json-simple"을 클릭합니다.
json-simple라이브러리에 대한 소개가 나오고 왼쪽 하단의 [Downloads] 링크를 클릭하여 다운로드할 라이브러리의 목록을 확인합니다.
가장 최신 버전의 라이브러리(json_simple-1-1-all.zip)를 다운로드합니다.
다운로드한 후 압축을 풀고
"json_simple-1.1-all\json_simple-1.1-all\lib" 폴더에 있는 "json_simple-1.1.jar" 파일을 lib폴더에 copy 합니다.
json-simple라이브러리에 포함된 API는 다음과 같습니다.
JSONObject - JSON데이터에서 { }로 표현되는 객체를 나타냅니다.
JSONArray - JSON데이터에서 [ ]로 표현되는 배열을 나타냅니다.
JSONParser - JSON데이터를 파싱할 수 있는 기능을 제공하는 클래스 입니다.
우선 json파일을 생성해 보도록 하겠습니다. src폴더에 json패키지를 추가한 후 JSONMaker.java파일을 추가합니다. 다음과 같이 코드를 작성합니다.
JSONMaker.java
package json;
import java.io.FileWriter;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
public class JSONMaker {
public static void main(String[] args) throws IOException{
// {} - JSONObject ,[] - JSONArray
JSONObject myjson = new JSONObject();
myjson.put("name", "김서연");
myjson.put("addr", "인천시");
myjson.put("age", "25");
JSONArray subjectlist = new JSONArray();
subjectlist.add("java");
subjectlist.add("spring");
subjectlist.add("hadoop");
myjson.put("subjectlist", subjectlist);
FileWriter writer = new FileWriter("src/json/mydata.json");
writer.write(myjson.toJSONString());
writer.flush();
writer.close();
System.out.println(myjson.toJSONString());
}
}
- JSONObject클래스를 이용하여 JSON의 오브젝트를 생성한 후 각각의 필드명과 필드에 대한 값을 할당할 수
있습니다. JSON의 오브젝트의 필드는 name과 value를 갖고 있어야 하므로 Map과 같은 자료구조 처럼
put메소드를 써서 name과 value를 정의합니다.
- JSONArray는 JSON의 배열을 정의할 때 사용하며 ArrayList나 Vector처럼 add메소드를 이용하여 배열에
객체를 추가할 수 있습니다. JSONArray의 요소는 일반 문자열, JSONObject등으로 추가할 수 있습니다.
- JSONObject의 put메소드를 이용하여 하위 요소로 JSON오브젝트에 추가합니다.
- 파일로 저장하는 것이므로 FileWriter와 같은 자바의 API를 이용하여 작업합니다.
위의 JSONMaker.java를 실행하고 F5키를 눌러 새로고침 하면 "mydata.json"파일이 추가된 것을 확인할 수 있습니다. 또한 toJSONStriang() 메서드를 이용하여 sysout 하였으므로 콘솔에 생성된 JSON 텍스트가 출력됩니다.
'웹 > json' 카테고리의 다른 글
JSON Validator (0) | 2019.08.11 |
---|---|
자바스크립트에서 JSON파싱하기 (0) | 2019.08.11 |
JSON의 문법 (0) | 2019.08.11 |
JSON의 개요 (0) | 2019.08.11 |