使用gwt javascript overlay types特性编写json应用
在gwt使用json替代rpc的简单示例中,使用gwt json可以将json字符串解析为java对象,但是这比较繁琐。比如:
JSONParser.parse(response.getText()).isObject().get("name").isString().stringValue()
从gwt 1.5开始引入了javascript overlay types特性,见:
http://code.google.com/intl/zh-CN/webtoolkit/doc/latest/DevGuideCodingBasicsOverlay.html
可以简化这个过程。还是用gwt使用json替代rpc的简单示例的示例,创建一个Customer类,用于操作json数据:
class Customer extends JavaScriptObject {
protected Customer() {
}public final native String getName() /*-{
return this.name;
}-*/;public static native Customer fromJson(String jsonString) /*-{
return eval(‘(‘ + jsonString + ‘)’);
}-*/;
}
这里的this,可是javascript的native关键字。方法被注释,而且增加了native,这样当gwt编译的时候,就知道注释部分是javascript的方法内容。
fromJson方法将响应返回的json文本转化为Customer类。
调用代码:
@Override
public void onResponseReceived(Request request,
Response response) {
dialogBox.setText("response:"
+ Customer.fromJson(response.getText()).getName());
dialogBox.center();
closeButton.setFocus(true);
}
这篇文章上的评论的 RSS feed TrackBack URI