마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 api 파싱관련해서 질문드려요

0 추천

안녕하세요 안드로이드 어플리케이션을 만들고 있는 학생입니다.

도서관 open api 정보나루api를 사용하고 있는데요, json을 읽어보니 이런구조를 가지고 있습니다.

 

{"response":{"request":{"startDt":"2019-01-01","endDt":"2019-03-27","kdc":"6","pageNo":1,"pageSize":30},"resultNum":30,"docs":[{"doc":{"no":1,"ranking":"1","bookname":"방구석 미술관 :가볍고 편하게 시작하는 유쾌한 교양 미술 ","authors":"조원재 지음","publisher":"백도씨","publication_year":"2018","isbn13":"9788968331862","addition_symbol":"03600","vol":"","class_no":"650.4","loan_count":"2,012","bookImageURL":"https://bookthumb-phinf.pstatic.net/cover/138/339/13833956.jpg?type=m1&udate=20180803"}},{"doc":{"no":2,"ranking":"2","bookname":"Why? 마술과학 ","authors":"글: 파피루스 ;만화: 이준희","publisher":"예림당","publication_year":"2016","isbn13":"9788930219563","addition_symbol":"74400","vol":"65","class_no":"689","loan_count":"1,248","bookImageURL":"http://image.aladin.co.kr/product/7672/82/cover/893021956x_1.jpg"}},{"doc":{"no":3,"ranking":"3","bookname":"축구 잘하는 50가지 비밀 :진짜 진짜 축구 잘하고 싶은 어린이만 보는 책! ","authors":"지은이: 길 하비,번역: 이성빈","publisher":"부즈펌","publication_year":"2015","isbn13":"9791186073605","addition_symbol":"73690","vol":"","class_no":"695","loan_count":"1,054","bookImageURL":"http://image.aladin.co.kr/product/5941/80/cover/6000848116_1.jpg"}},{"doc":{"no":4,"ranking":"4","bookname":"인생에서 너무 늦은 때란 없습니다 :모지스 할머니 이야기 ","authors":"지은이: 애나 메리 로버트슨 모지스 ;옮긴이: 류승경","publisher":"수오서재","publication_year":"2017","isbn13":"9791187498186","addition_symbol":"03840","vol":"","class_no":"650.99","loan_count":"795","bookImageURL":"https://image.aladin.co.kr/product/12540/78/cover/k482532464_1.jpg"}},{"doc":{"no":5,"ranking":"5","bookname":"(한 권으로 끝내는) 종이접기 ","authors":"주부의벗사 편집 ;김정화 옮김","publisher":"길벗스쿨","publication_year":"2016","isbn13":"9788962228960","addition_symbol":"13630","vol":"","class_no":"634","loan_count":"794","bookImageURL":"http://image.aladin.co.kr/product/7606/23/cover/8962228963_1.jpg"}},{"doc":{"no":6,"ranking":"6","bookname":"Why? 스포츠과학 ","authors":"글: 조영선 ;만화: 이영호","publisher":"예림당","publication_year":"2011","isbn13":"9788930202626","addition_symbol":"74690","vol":"33","class_no":"692","loan_count":"672","bookImageURL":"http://image.aladin.co.kr/product/716/59/cover/8930202624_1.jpg"}},{"doc":{"no":7,"ranking":"7","bookname":"계절은 bookthumb-phinf.pstatic.net/cover/066/929/06692966.jpg?type=m1&udate=20111115"}},

이렇게 쭉 있는 json구조문이 있습니다.,

try {

    JSONArray jarray = new JSONObject(receiveMsg).getJSONArray("docs");
    
    for (int i = 0; i < jarray.length(); i++) {
        
        JSONObject bookItem = jarray.getJSONObject(i);

        String title = bookItem.getString("bookname");
        String author = "저자 : " + bookItem.getString("authors");
        String publisher = "출판사 : " + bookItem.getString("publisher");
        String isbn = "ISBN13 : " + bookItem.getString("isbn13");
        String image = bookItem.getString("bookImageURL");
        String date= "출판일 : " + bookItem.getString("publication_year");
        String desc = "도서관에서 제공을 하지 않습니다.";

receiveMsg에 저 json구조가 들어있습니다.

docs를 getJSONArray로 잡아서 저렇게 구조를 하면되지 않나요?

그런데 돌려보면 org.json.JSONException: No value for docs 요렇게 찾을 수 없다고만 

뜨는데 왜 그런지 알수 있을까요?

다른 api는 다 사용이 가능한데 요것만 안되고 있어요..ㅠㅠ

킹갓찬종 (120 포인트) 님이 2019년 9월 27일 질문
킹갓찬종님이 2019년 9월 27일 수정

1개의 답변

0 추천
response 부터 파싱해야하지 않나요?
쎄미 (162,410 포인트) 님이 2019년 9월 27일 답변
json 구조에 대해서 공부가 부족했던 것 같습니다.
response -> docs -> doc으로 파싱을 해야했는데 감사합니다!
...