JSON 파싱 질문드립니다

조회수 503회

아래는 Bithumb candle chart 1분봉 리스트를 가져오는 URL 입니다

https://api.bithumb.com/public/candlestick/ETH/1m

{"status":"0000","data":[[1582464360000,"321000","320900","321000","320900","11.7071"],[],[]]}

data를 가져오고 싶은데 어떻게 파싱해야 하나요?

List(string[]) data = ? 

org.json.JSONObject 라이브러리 사용중입니다

2 답변

  •     @Test
        public void parseFromString() {
            final String jsonString = "{\"status\":\"0000\",\"data\":[[1582464360000,\"321000\",\"320900\",\"321000\",\"320900\",\"11.7071\"],[],[]]}";
            JSONObject object = new JSONObject(jsonString);
    
            JSONArray data = (JSONArray) object.get("data");
            Assert.assertEquals(JSONArray.class, data.get(0).getClass());
    
            JSONArray firstElement = (JSONArray) data.get(0);
            Assert.assertEquals(Long.class, firstElement.get(0).getClass());
            Assert.assertEquals(String.class, firstElement.get(1).getClass());
    
            JSONArray secondEmptyElement = (JSONArray) data.get(1);
            Assert.assertEquals(0, secondEmptyElement.length());
        }
    

    위처럼 하면 됩니다.

    사실 이것보단 fasterxml-jackson이나 google-Gson을 쓰는게 더 편합니다.

  • 아래와 같은 형태로 접근하면 됩니다.

    jsonStr = "{\"status\":\"0000\",\"data\":[[1582464360000,\"321000\",\"320900\",\"321000\",\"320900\",\"11.7071\"],[],[]]}"
    JSONObject jsonObj = new JSONObject(jsonStr);
    JSONArray jsonArray = jsonObj .getJSONArray("data");
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)