JSON(제이슨, JavaScript Object Notation)은, 인터넷에서 자료를 주고받을 때 그 자료를 표현하는 방법이다.
XML 보다 데이터 전송량이 적어서 효율적이다. http://ko.wikipedia.org/wiki/JSON
GSON(지슨)은 Java 객체를 JSON 표현식으로 변환할 수 있게 하는 Java 라이브러리 이다. JSON 표현식 형태의 문자열을 Java 객체로 변환도 가능하다.
네트워크 통신시에 객체를 전송/수신할때 Serialization/Deserialization (직렬화/역직렬화)를 해야한다. 그러기 위해서는 전송하는 객체에 Serialization//Deserialization을 구현해야한다.
이런걸 하기 귀찮아서 GSON 라이브러리를 사용한다.
1. 서버로 전송시 (Serialization 대신 gson.toJson 사용)
Gson gson = new Gson(); MyClass obj = new MyClass(); obj.setParam(1,"홍길동", "010-7777-8888", 23, "M"); String json = gson.toJson(obj);
2. 서버에서 수신시 (Deserialization 대신 gson.fromJson 사용)
Gson gson = new Gson(); String result = "서버에서 온 데이터...."; MyClass obj = new MyClass(); obj = gson.fromJson(result, MyClass.class);
3. 단순한 자료형도 변환가능하다.
// Serialization Gson gson = new Gson(); gson.toJson(1); gson.toJson("qwer"); gson.toJson(new Long(10)); int[] values = {1,2,3,4}; gson.toJson(values); // Deserialization int one = gson.fromJson("1", int.class) Integer one = gson.fromJson("1", Integer.class) Boolean bb = gson.fromJson("true", Boolean.class); String str = gson.fromJson("abc", String.class); String body = ...; String[] strings = gson.fromJson(body, String[].class);
4. 객체의 List 일경우.
// MyObjectVO.java public class MyObjectVO { private String item; private String type; private String score; public String getItem() { return item; } public void setItem(String item) { this.item = item; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getScore() { return score; } public void setScore(String score) { this.score = score; } }
// MyObjectVOList.java
public class MyObjectVOList {
private List<MyObjectVo> list;
public List<MyObjectVo> getList() {
return list;
}
public void setList(List<MyObjectVo> list) {
this.list = list;
}
}
// 서버로 전송시(또는 서버에서 전송시)
Gson gson = new Gson();
MyObjectVoList voList = new MyObjectVoList();
List<MyObjectVo> list = new ArrayList<MyObjectVo>();
...
MyObjectVo myobj = new MyObjectVo();
myobj.setItem("apple");
myobj.setType("red");
myobj.setScore("99")
list.add(myobj);
...
voList.setList(list);
gson.toJson(voList);
// 서버에서 수신시
Gson gson = new Gson(); MyObjectVoList voList = gson.fromJson(result, MyObjectVoList.class); String item = voList.getList.get(0).getItem.toString();
참고 : http://emflant.tistory.com/47
예제 : https://sites.google.com/site/gson/gson-user-guide
GSON 다운로드 : https://code.google.com/p/google-gson/downloads/detail?name=google-gson-2.2.4-release.zip
'자바 일반' 카테고리의 다른 글
MATLAB 실행 오류 (0) | 2014.09.04 |
---|---|
enum 응용, Properties (속성) 사용 예제 (0) | 2014.08.28 |
InputStream 을 String 으로 변환하기 (0) | 2014.08.25 |
[Java]Collections.sort로 정렬하기(문자열, 숫자) (0) | 2014.07.28 |
HashSet 사용시 중복 여부 판별 부여 방법 (0) | 2014.07.16 |