이번 포스팅은 json-simple 라이브러를 사용하여 제이슨 파일을 파싱하는 예제를 다뤄보려고 합니다.
▼▼▼ json-simple 라이브러리 적용하는 방법 ▼▼▼
보통 key가 정의되어 저장된 json을 key 값으로 읽어오는 경우가 많은데,
간혹가다가 key에 대한 정보가 없고 key도 랜덤성 데이터로 저장된 json인 경우
읽어올 때, key-value 세트로 읽어오는 방법을 사용하면 좋지 않을까 생각된다.
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Iterator;
import java.util.Map;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class ParsingMain {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
String fileName = "C:/data/test/22-14.json"; // 읽어 오려는 json 파일 경로
System.out.println("- read file => " + fileName);
try(Reader reader = new FileReader(fileName)) {
JSONObject jsonObject = (JSONObject) parser.parse(reader);
int objSize = jsonObject.size();
System.out.println("- object size => " + objSize);
Iterator iter = jsonObject.entrySet().iterator();
while(iter.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) iter.next();
System.out.println(entry.getKey() + " => " + entry.getValue());
}
} catch(IOException e) {
e.printStackTrace();
} catch(ParseException e) {
e.printStackTrace();
}
}
}
1번과 마찬가지로 정해진 key 값이 없거나
정해진 key값은 있고 순서도 정해져있지만, 인간의 오류를 최소화 하기 위해
json에 저장된 key를 읽어들여 값을 가져오면 좋지 않을까 생각된다.
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Iterator;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class ParsingMain {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
String fileName = "C:/data/test/22-14.json";
System.out.println("- read file => " + fileName);
try(Reader reader = new FileReader(fileName)) {
JSONObject jsonObject = (JSONObject) parser.parse(reader);
int objSize = jsonObject.size();
System.out.println("- object size => " + objSize);
String key = "";
String val = "";
Iterator<String> keys = jsonObject.keySet().iterator();
for(int i=0; i < objSize; i++) {
key = keys.next();
val = (String) jsonObject.get(key);
System.out.println(key + " => " + val);
}
} catch(IOException e) {
e.printStackTrace();
} catch(ParseException e) {
e.printStackTrace();
}
}
}
제이슨 파싱 예제를 검색하면 가장 많이 보이는 방법으로
가져올 key를 명확히 알고 있는 경우 일반적으로 사용하는 방법인 것 같다.
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class ParsingMain {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
String fileName = "C:/test/data/aaa.json";
System.out.println("- read file => " + fileName);
try(Reader reader = new FileReader(fileName)) {
JSONObject jsonObject = (JSONObject) parser.parse(reader);
int objSize = jsonObject.size();
System.out.println("- object size => " + objSize);
String name = (String) jsonObject.get("name");
String age = (String) jsonObject.get("age");
String address = (String) jsonObject.get("address");
System.out.println("---- 파싱 결과 ----");
System.out.println("- name => " + name);
System.out.println("- age => " + age);
System.out.println("- address => " + address);
} catch(IOException e) {
e.printStackTrace();
} catch(ParseException e) {
e.printStackTrace();
}
}
}
[aaa.json]
[출력 결과]
도움이 되셨다면 하트 클릭과
궁금하신점 또는 개선사항이 있다면 댓글 부탁드립니다.
감사합니다. :)
[Java] array 를 ArrayList 로 변환 방법/ 인덱스 remove 에러 해결 방법 (remove, java.lang.UnsupportedOperationException) (0) | 2022.02.09 |
---|---|
[Java] json 파일 문자열(String)으로 읽는 방법 (4) | 2022.02.09 |
[자바] Java 시작 - 업데이트된 라이센스 조항 해결 방법 (유료 삭제/무료 설치) (0) | 2022.01.24 |
[Launch4j] 자바 exe 파일 생성시 메모리 설정하는 방법 (0) | 2021.02.16 |
[JAVA] 자바로 이클립스에서 CSV 파일 쓰기 (줄바꿈 입력 방법 포함) (0) | 2020.12.14 |