2024-05-08 오늘의 TIL

이재성·2024년 5월 9일

자바에서의 Json 사용법

인텔리제이 기준으로 json-simple.jar 파일을 이용해서 java파일 안에 json객체를 다룰수 있었다 이제 이것을 이용해서 json을 다뤄보았다.

변수 선언방법과 주로 사용한 객체

JSONObject {변수명} = new JSONObject;
JSONArray {변수명} =new JSONArray;
JSONParser {변수명} = new JSONParser;

위와 같이 일반 자바에서 사용하는것과 같은 자료형 변수 형태로 사용한다
그리고 Json의 기본구조가 key, value 형태를 취하기 때문에 자바의 hash map을 extends 하고 있다.

json 파일 호출

BufferedReader b = new BufferedReader(new InputStreamReader(new FileInputStream({경로})));

b.close // 로직을 여러번 수행할때 close로 재시작 하지 않으면 로직이 실행이 안된다

json 파일 파싱

JSONObject a = (JSONObject) {파일 저장 된 변수명}.parse().toString();
// a에 파일의 내용을 JSONObject 형식으로 담는다.


String b = (String) a.get({키값})

위 와 같은 방법으로 파일 내용을 받아서 다룰 수 있게 된다.

깊숙히 있는 키값 다뤄보기

JSONObject a = (JSONObject) {파일 저장 된 변수명}.parse().toString();
// a에 파일의 내용을 JSONObject 형식으로 담는다.


JSONObject b = (JSONObject) a.get({키값})
b.get({키값})

단순하게 사용한 방법이다 a의 키값에 따른 벨류 값이 또 키 벨류 형식을 취하고 있을 경우 위 방법을 이용해서 가져오기한 다음 put을 사용하여 값을 변경하였다.
!! put을 할때 안에 이미 같은 키값을 가지고 있다면 put한 걸로 덮어쓰기가 된다 (주의)

같은 키값에 값을 넣고 싶을때

JSONObject Merge = new JSONObject(); // 합쳐진 값을 저장할 jsonobject
JSONObject[] objs= new JSONObject[]{{합칠 jsonobject1},{합칠 jsonobject2}};
            for (JSONObject object : objs){
                Iterator it = object.keySet().iterator();
                while (it.hasNext()) {
                    String key = (String) it.next();
                    Merge.put(key, object.get(key));
                }
            } 

오늘의 회고

자바에서 json을 어떻게 다뤄야 하는지에 대해서 알아보는 시간을 가지게 되었고
내가 의도한 구조를 만들기 위해 어떻게 짜야 되는지 이해할수 있는 시간이였다.
하지만 2개의 오브젝트를 하나로 합칠 때 이렇게 번거롭게 해야하는지, 더 쉽게 합칠 방법은 없는 지 알아보아야겠다..

profile
하이요

2개의 댓글

comment-user-thumbnail
2024년 5월 9일

머리 조심, 노트북 조심,,

1개의 답글