Java에선 JSON 관련해서 파싱이나, 받을일이 많아진다.
예를들자면 [{"테스트" , "테스트"}, {"22", "22"}]
이런식의 스트링이지만, JSON 배열으로 나오는 경우가 종종있다.
그럼 해당 메서드를 어떻게 빠르게 처리할 수 있을지 고민해봤는데,
우선 import는 다음과 같이 했다.
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
세가지에 대해서 정리해보았다.
JSONArray -> 이 타입은 JSON형의 문자를 배열형식으로 (Array 형태) 되어있을때 사용 가능한 클래스다.
JSONObject같은 경우엔 {"key" , "value"}의 형태를 받아주는 것이다.
얼추 다음과같이 JSONArray 타입을 "스트링"형으로 가져온다고 가정해보자
String temp = EntityUtils.toString(entity, "UTF-8").toString();
그럼 저 temp값을 나누기위해서 다음과같이 준비했다.
JSONArray jsonArr = JP(temp);
JP?
무슨 기능일까?
public JSONArray JP(String parsingString) throws Exception{
JSONParser jp = new JSONParser();
return (JSONArray)jp.parse(parsingString);
}
그냥 따로 만든 메서드이다.
말그대로 String형의 문자열(JSONArray로 되어있는)을 가져와서 JSONParser를 통해서 파싱을 하게 된다.
그럼 저렇게 JSONParser를 통해서 파싱을 하고 나서 처리는 다음과 같이 할 수 있다.
for(int i=0;i<jsonArr.size();i++){
JSONObject jsonObj = (JSONObject)jsonArr.get(i);
}
System.out.println(temp);
jsonArr만큼 배열을돌려서 전부 넣어주는것이다.