Github API를 사용해서 한달간의 commit 수를 나타내는 json 값을 파싱해와야 하는 일이 있었다.
그런데 key값이 없어서 값을 다루는 데 삽질하다가 JSONArray로 접근해서 해결한 내용을 포스팅하려 한다.
아래는 내가 가져올 JSON 값이었다.
key값이 하나도 지정돼있지 않고, value의 배열이 나열되어 있었다.
각 배열의 3번째값이 그 날의 Commit 수를 나타내고 있었기에, 나는 각 배열의 3번째 값들 (3, 10, 8)만 get해와서 더해주고자 했다.
[
[
0,
0,
3
],
[
0,
1,
10
],
[
0,
2,
8
]
]
그런데 key값이 없어서 값을 get 해올 수가 없었다.
//참고 --- 일반적인 JSON 형식 (key값 존재)
{
"age":22,
"name":"ottl-seo"
}
위와 같은 일반적인 JSONObject에서 값을 get해오려면,
JSONObject.get("age"); 처럼 key값이 필요한데
키 값이 없으니 JSONObject 값에 접근할 수가 없었다. (인덱스로 접근할 수 있는 방법이 없었다)
그래서,
JSONArray를 활용해서 접근해보았다.
JSONArray.get(인덱스번호); 를 통해서 key값 없이도 value 값에 접근할 수 있다.
그리고 값을 더해주기 위해 (long)으로 강제 형변환을 거쳐주었다.
그랬더니 빨간줄이 없어지고 제대로 값을 더해줄 수 있었다.
끝