2011-04-14 5 views
8

GWT가 좋은 RPC를 지원한다는 것을 알고 있습니다. 그러나 다양한 목적을 위해 나는 이것을 스스로 작성해야합니다 :GWT (클라이언트) = 개체를 JSON으로 변환하고 서버로 보내는 방법은 무엇입니까?

1.) 어떻게 클라이언트 측에서 Bean 객체를 변환 할 수 있습니까?

class MyPerson { 

String name; 
String getName(); 
void setName(String name); 
//..  
} 

GWT를 JSON 문자열로 변환 하시겠습니까? (GWT/Google에서 공식적으로 제공되는 라이브러리 만 사용하는 것이 이상적입니다.)

2.) 둘째로, 생성 된 JSON String을 클라이언트 측에서 GWT Client Logik을 사용하는 모든 서버로 어떻게 보낼 수 있습니까? (GWT/Google에서 공식적으로 제공되는 라이브러리 만 사용하는 것이 이상적입니다.)

많은 검색을 해 왔지만 예제에서는 데이터를 보내지 만 JSON 데이터 만 수신하는 방법을 보여주지 않습니다.

대단히 감사합니다! Jens

답변

9

GWT가 작성할 타사 라이브러리가 아닌 AutoBeanFactory라는 멋진 클래스가 있습니다. 당신이 당신의 AutoBeanFactory이 있으면, 당신은 다음과 같이 사용할 수 있습니다 http://google-web-toolkit.googlecode.com/svn-history/r9219/javadoc/2.1/com/google/gwt/editor/client/AutoBeanFactory.html

참조 : 형 SimpleInterface의 객체에서 JSON을 생산

형 SimpleInterface의 객체에서 JSON을 구문 분석

AutoBean<SimpleInterface> bean = beanFactory.create(SimpleInterface.class, simpleInterfaceInstance); 
String requestData = AutoBeanCodex.encode(bean).getPayload(); 

useRequestBuilderToSendRequestWhereverYouWant(requestData); 

SimpleInterface simpleInterfaceInstance = AutoBeanCodex.decode(beanFactory, SimpleInterface.class, responseText).as(); 

RequestBuilder을 사용하여 GWT-RPC 또는 RF 항목없이 이러한 요청을 보낼 수 있습니다.

0

JSON 페이로드를 만들고 수신하는 데 사용할 수있는 GWT의 AutoBean 프레임 워크를 살펴보십시오. 서버에 HTTP 요청을 보내기 위해 유형을 사용할 수 있습니다.

7

RestyGWT을 사용하는 것이 좋습니다. JSON 휴식 서비스가 GWT RPC 서비스처럼 작동하도록합니다.

0

또 다른 솔루션 인 제 3 자 솔루션, 어쩌면 2 위 솔루션이 있지만 첫 번째 솔루션이 될 수도 있습니다. GSON이라는 타사가 Google 코드의 프로젝트 오픈 소스입니다. 찾을 수 있습니다 here.

나는 그것을 아주 잘 사용하고 아주 간단하다.

+2

GSON은 리플렉션을 사용하기 때문에 GWT 클라이언트 측에서 사용할 수 없습니다. – funkybro

관련 문제