[JSON 파싱]simple-json

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();

댓글