행복을 위하여.
자바에서 JSON(JavaScript Object Notation) 파싱하는 방법~ 본문
자바에서 JSON 파싱하는 방법은 이미 만들어져 있는 라이브러리를 가져다 쓰면 쉽게 파싱이 가능하다. (JSON에 관한 설명은 JSON 단어 클릭)
http://code.google.com/p/json-simple/
위의 주소로 들어가면 라이브러리를 다운받을 수 있다.
웹서버에 있는 JSON을 string형태로 가져오기 위해
HttpURLConnection클래스로 웹서버 연결을 확립하고 getInputStream함수를 통해 스트링 형태로 JSON을 가져온다.
스트링을 통해 가져온 값을
json simple라이브러리에 있는 함수로 적절히(?) 사용하면 파싱은 쉽게 된다.아~~주 쉽다.ㅡ,.ㅡ
간단한 예제)
String string = "{name2: 50, name3: "값3", name1: "값1"}";
String name2;
String name3;
STring name1;
JSONObject jsonobj = JSONValue.parse(string);
Iterator iter = json.keySet().iterator();
while(iter.hasNext()){
String key = (String) iter.next();
Object value = jsonObj.get(key);
if(key.equals("name2")
name2 = (String)value;
else if(key.equals("name3")
name3 = (String)value;
else if(key.equals("name1")
name1 = (String)value;
}
System.out.println(name2 + name3 + name2);
출력값 : 50,값3,값1
아래와 같은 배열형태도
String string = "[{"date":"2011년 02월 15일 (화)","locatename":"강남"},
{"date":"2011년 02월 16일 (수)","locatename":"신도림"},
{"date":"2011년 02월 17일 (목)","locatename":"목동"},
{"date":"2011년 02월 18일 (금)","locatename":"홍대"},
{"date":"2011년 02월 19일 (토)","locatename":"영등포구청"},
{"date":"2011년 02월 21일 (월)","locatename":"목동"}]"
String date;
String locatename;
for문을 돌려
get함수로 하나씩 꺼내서 파싱하면된다.
JSONObject jsonobj = JSONValue.parse(string);
if(jsonobj instanceof JSONArray){
JSONObject jsonObject = null;
for (int i = 0; i < jsonArray.size(); i++) {
jsonObject = (JSONObject) jsonArray.get(i);
Iterator iter = jsonObject.keySet().iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
if (key.equals("date")) {
else if(key.equals("name1")
name1 = (String)value;
}
System.out.println(name2 + name3 + name2);
출력값 : 50,값3,값1
아래와 같은 배열형태도
String string = "[{"date":"2011년 02월 15일 (화)","locatename":"강남"},
{"date":"2011년 02월 16일 (수)","locatename":"신도림"},
{"date":"2011년 02월 17일 (목)","locatename":"목동"},
{"date":"2011년 02월 18일 (금)","locatename":"홍대"},
{"date":"2011년 02월 19일 (토)","locatename":"영등포구청"},
{"date":"2011년 02월 21일 (월)","locatename":"목동"}]"
String date;
String locatename;
for문을 돌려
get함수로 하나씩 꺼내서 파싱하면된다.
JSONObject jsonobj = JSONValue.parse(string);
if(jsonobj instanceof JSONArray){
JSONObject jsonObject = null;
for (int i = 0; i < jsonArray.size(); i++) {
jsonObject = (JSONObject) jsonArray.get(i);
Iterator iter = jsonObject.keySet().iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
if (key.equals("date")) {
date = (String)jsonObject.get(key);
} else if (key.equals("locatename")) {
locatename = (String)jsonObject.get(key);
}
System.out.println("date :" + date +"locatename"+ locatename);
locatename = (String)jsonObject.get(key);
}
System.out.println("date :" + date +"locatename"+ locatename);
}
끝.
끝.
'전문가가 되기 위하여 > 작업 노트' 카테고리의 다른 글
디자인 패턴 카탈로그 (0) | 2021.12.18 |
---|---|
Permission denied (publickey,gssapi-with-mic,password) 해결방법 (14) | 2013.02.10 |
Olleh TV 개발환경 설치 및 설치 시 주의사항 (2) | 2011.01.16 |
Comments