JSON을 다루면서 겪었던 실수
JSONARRAY로 리턴된 검색결과를 다룰때 한 실수
새로운 프로젝트를 진행하면서
API를 다루며 웹프로젝트를 진행하던 중 난감한 상황을 맞이했다.
이전에 블로그 만들기를 진행했었을때 로그인기능은 페이스북 API를 이용해 JSONObject만 을 리턴 받아 구현했었다.
JSONARRAY 객체로 표현된 것이 없어서 비교적 쉽게 JSONObject.get(“key”)값을 이용해 리턴받은 결과들의 데이터를 조작할수 있었지만,
이번 경우는 달랐다.
검색기능 수행한 결과가 JSONARRAY** 를 통해 결과들이 나열된 형식으로 표현된 것이었다.
처음에는 파라미터를 정해놓고 파싱을 어떻게 할지 생각했었기 때문에 일어난 실수 였다.
결국 여러 시행착오를 겪으며 해결했고, JSONArray 파싱에 대한 글은 많이 없는것 같아서 글을 남겨본다.
파싱과정은 다음과 같이 수행하였다.
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(json);
JSONArray rowArray = (JSONArray) jsonObject.get("rows");
JSONObject dataobj = (JSONObject) rowArray.get(index);
2: 파싱받고 싶은 JSON페이지를 JSONParser로 받고
3: rows라는 이름을 통해 JSONArray객체를 선정한뒤,
5: 해당 객체에서 결과값을 받고싶은 오브젝트의 index를 입력받는다.
그 후 , 아래와 같이 index입력을 통해 받은 JSONObject 객체에서 key를 뽑아 데이터를 관리하면 된다.
처음에는 JSONArray에서 바로 JSONObject를 리턴받으려고 했었는데
결과값이 여러개일 경우를 생각하지 못해서 생긴 실수 였다.
index를 입력받는 과정을 통해 어느 객체의 정보가 필요한지 명시해 주어야 원하는 정보를 얻을 수 있다.
너무 초보적인, 실수라고 부르기도 뭐했지만 그래도 블로그에 남겨본다 ㅠ