스마트웹앱콘텐츠전문가/JAVA
[JSON 파싱]simple-json
9D4U
2020. 10. 13. 18:30
728x90
반응형
json-simple : json 파일 쓰기(write), 읽기(read) 가능합니다.
메이븐 사용 시,
메이븐 리포지토리에서 json-simple
(id - com.googlecode.json-simple | version - 1.1.1 ) 받아옵니다.
JSON value <-> JAVA 클래스
string <-> java.lang.String : 문자
number <-> java.lang.Number : 숫자
nulll <-> null
boolean <-> Boolean : true or false
Array <-> java.util.List : JSON에서 '[]'로 표기(json-simple에서 JSONArray를 사용)
Object <-> java.util.Map : JSON에서 '{}'로 표기(key-value 형식으로 되어 있음)(json-simple에서 JSONObject를 사용)
예시) 특정한 json파일에서 해당 값을 가져오기
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("json 파일경로"));
JSONObject jsonObject = (JSONObject) obj;
JSONObject quiz = (JSONObject)jsonObject.get("quiz"); //키 값이 quiz인 json 데이터 값을 가져옴
JSONObject sport = (JSONObject)quiz.get("sport"); // 키 값이 sport인 json 데이터 값을 가져옴
JSONObject maths = (JSONObject)quiz.get("maths"); // 키 값이 maths인 json 데이터 값을 가져옴
for (int i = 1; i <= maths.size(); i++) {
String q = "q"+i;
System.out.println(q);
JSONObject questions = (JSONObject)maths.get("q"+i);
String question = (String)questions.get("question");
String answer = (String)questions.get("answer");
JSONArray jsonArrary = (JSONArray)questions.get("options");
Iterator<String> itr = jsonArrary.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
System.out.println(question);
System.out.println(answer);
}
} catch (FileNotFoundException e) {
// TODO: handle exception
e.printStackTrace();
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
} catch (ParseException e) {
// TODO: handle exception
e.printStackTrace();
}
728x90