Tag Archives: 라이브러리

[Java] Json 라이브러리의 최고봉 Gson 수동으로 배열 처리하기

구글의 Json 라이브러리인 [Gson]는 확실히 멋진 라이브러리입니다. 어떤식으로든지 객체와 1:1매핑되어 정확하게 값이 타입에 맞게 들어가는 것을 보면 놀라지 않을 수 없습니다.

그런데 이것이 너무 편하다 보니 매번 POJO객체를 만들어야 한다거나 또는 이 편리함이 오히려 복잡함으로 다가오게 만들정도의 획일화된 사용법을 제공하는등 마냥 편한건 아닌것 같더군요.

하지만 좀더 알아보니 방법이 없는게 아니라 제가 모르는 것이었습니다. [이곳]에 나와있는 예제를 첨부해 보겠습니다.
[code]Gson gson = new Gson();

Collection collection = new ArrayList();
collection.add(“hello”);
collection.add(5);
collection.add(new Event(“GREETINGS”, “guest”));

String json = gson.toJson(collection);
System.out.println(“Using Gson.toJson() on a raw collection: ” + json);[/code]
위와 같은 코드를 실행해서 배열을 Json으로 변환하는 예제를 실행해 보았습니다. 위의 예제는 사실상 전혀 이해 못할것이 없는 당연스러운 코드 입니다. 하지만 다음의 경우는…일단 저는 모르고 있었네요.
[code]JsonParser parser = new JsonParser();

JsonArray array = parser.parse(json).getAsJsonArray();

String message = gson.fromJson(array.get(0), String.class);
int number = gson.fromJson(array.get(1), int.class);
Event event = gson.fromJson(array.get(2), Event.class);

System.out.printf(“Get: %s, %d, %s”, message, number, event);[/code]
위와 같이 일일이 수작업으로 원하는 만큼만의 작업을 할 수 있습니다. Java 5.0이상부터라면 다음과 같은 구문을 사용할 수도 있습니다.
[code]JsonParser parser = new JsonParser();

JsonArray array = parser.parse(json).getAsJsonArray();

for(JsonElement element : array)
{
  // …
}[/code]

참고 :
http://code.google.com/p/google-gson/source/browse/trunk/extras/src/main/java/com/google/gson/extras/examples/rawcollections/RawCollectionsExample.java

https://sites.google.com/site/gson/gson-user-guide 

[Eclipse] 일반 Java 프로젝트에서 라이브러리 추가하기

지금 제가 하는 방법은 그냥 간단하게 Build Path에 라이브러리만 달랑 추가하면 되는 간단한 방법을 놔두고 복잡하게 라이브러리를 추가하는 방법을 설명하려고 합니다. 이와같은 방법을 찾아보게 된 이유는 단순히 깔끔함을 위해서 입니다. 더 쉬운 방법이 있을지도 모르겠지만 다음과 같이 하면 프로젝트 루트에 참조된 라이브러리들이 표시되지 않아 프로젝트의 계층구조가 더렵혀지지(?) 않는다는 장점이 있습니다.

사용자 삽입 이미지

위와같이 기본적인 프로젝트의 형태를 갖추어 놓습니다. 프로젝트에 마우스 우클릭 후 New – Folder를 선택하셔서 lib디렉토리를 추가하시면 됩니다. 프로젝트에 추가할 라이브러리는 asm과 cglib입니다.

사용자 삽입 이미지
프로젝트 이름에 마우스 우클릭 후 Properties에 들어갑니다. 위의 이미지에 나와있는 순서대로 들어가서 User Library를 선택해 줍니다.

사용자 삽입 이미지
마찬가지로 위의 순서대로 하여 새로운 사용자 라이브러리를 추가합니다. 이름은 임의대로 하시면 되는데 저는 Referenced Library라고 하였습니다.

사용자 삽입 이미지
이제 추가된 라이브러리에 Add JARs를 눌러 프로젝트 폴더안의 lib디렉토리 안에 있는 해당 JAR파일들을 모두 선택해 줍니다. 그리고 계속 OK/Finish를 눌러 밖으로 빠져나오시면 됩니다.

사용자 삽입 이미지
프로젝트의 최종모습입니다. Referenced Library가 추가되었네요. 이제부터 이 프로젝트에서는 해당 JAR파일안의 클래스들을 마음껏 사용할 수 있게 되었습니다. 제가 이 방법을 선택하게 된 목적인 앞을 닫아버려서 라이브러리들을 쭉 감춰놓고 사용할 수 있게 되었고요^^