스마트웹앱콘텐츠전문가/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