(java)API 와 JSON 파싱 관련 질문입니다.

조회수 1673회

{ "success": true, "message": null, "code": null, "elapsed": 0.1291, "data": { "CSPA:BTC": { "cspa": 8012.00601685, "cspa_change_24h": -467.52638691, "cspa_change_24h_pct": -5.51, "volume_btc_24h": 634847.37, "volume_usd_24h": 5086400987.27, "updated": 1522132576 } } }

api 코드를 실행시키면 나오는 JSON 데이터 입니다.

JSON파싱을 하고 싶은데,

JSON파싱을 하는 코드를 어디다가 작성해야 되는지를 모르겠습니다.

같은 패키지 안에 다른 클래스로 해야되는지,

아니면 따로 클래스를 메인에서 빼서 작성해야되는지 궁금합니다.

또, 데이터 안에 cspa라는것을 추출하기 위해서

        JSONArray bodyArray = (JSONArray) object.get("CSPA:BTC");
        for(int i = 0 ; i < bodyArray.size(); i++) 
        {
            JSONObject data = (JSONObject) bodyArray.get(i);        
            System.out.println(data.get("cspa").toString());
            System.out.println(data.get("cspa_change_24h").toString());
            System.out.println(data.get("cspa_change_24h_pct").toString()); 
        }

이런식의 코드가 맞는건가요?

JAVA를 배우지 않고 주먹구구식으로 필요한것만 습득하고

짜집기하다보니 ㅠㅠ

고수님들의 도움이 필요합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • json beautifier 키워드로 검색을 하게되면 json 데이터의 구조를 눈으로 보기 쉽게 바꿔주는 사이트들이 많습니다.

    {  
       "success":true,
       "message":null,
       "code":null,
       "elapsed":0.1291,
       "data":{  
          "CSPA:BTC":{  
             "cspa":8012.00601685,
             "cspa_change_24h":-467.52638691,
             "cspa_change_24h_pct":-5.51,
             "volume_btc_24h":634847.37,
             "volume_usd_24h":5086400987.27,
             "updated":1522132576
          }
       }
    }
    

    JSONArray 는 배열[]을 파싱할 때 사용해야 합니다. 위 데이터들은 모두 중괄호{} 를 사용한 object 로 되어 있네요. 아래와 같이 순차적으로 접근하면 됩니다. 이 코드는 어디에 있어도 상관은 없습니다.

    JSONObject dataObject = (JSONObject) parsedObject.get("data");
    JSONObject targetObject = (JSONObject) dataObject.get("CSPA:BTC");
    targetObject.get("cspa");
    targetObject.get("cspa_change_24h");
    ...
    

    json-simple 사용 예시 입니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)