如何在GWT中使用第三方json服务

如何在GWT中使用第三方json服务,gwt,jsonp,gwtquery,gquery,Gwt,Jsonp,Gwtquery,Gquery,我正在寻找GWT中访问3party json rest服务并快速解析其响应的最佳方法。rest服务提供了回调参数,他们给我们的示例是使用jQuery.jsonp: $.ajax({ type: 'GET', url: 'http://server_name?id=and_id&callback=?', contentType: "application/json", dataType: 'jsonp', success: function(js) {/*{id='id

我正在寻找GWT中访问3party json rest服务并快速解析其响应的最佳方法。rest服务提供了
回调
参数,他们给我们的示例是使用jQuery.jsonp:

$.ajax({
  type: 'GET',
  url: 'http://server_name?id=and_id&callback=?',
  contentType: "application/json",
  dataType: 'jsonp',
  success: function(js) {/*{id='id',status='sold',prod_name='name',price=0.0 ...}*/},
  error: function(e) {}
});
尽管GWT提供了一个通过脚本标记执行请求、处理json响应和生成java实现的工具,但我更喜欢和,因为它简单

在您的情况下,您可以使用与提供商提供的语法几乎相同的语法:

  ajax("http://server_name?id=and_id&callback=?",
       $$("type:'get', dataType: 'jsonp'),
       new Function() {
        public void f() {
          Properties jso = getDataProperties();
          String status = jso.get("error");
        }
  });
如果您喜欢使用生成器,因为您喜欢get/setter,那么您的代码可以如下所示:

  public static interface MResponse extends JsonBuilder {
    String getId();
    String getStatus();
    String getProd_name();
    double getPrice();
  }

  ajax(Ajax.createSettings()
           .setType("get")
           .setDataType("jsonp")
           .setUrl(""))
    .done(new Function() {
      public void f() {
        MResponse resp = GWT.<MResponse>create(MResponse.class)
                            .load(getDataProperties());
        String status = resp.getStatus();
      }
    });
公共静态接口MResponse扩展了JsonBuilder{
字符串getId();
字符串getStatus();
字符串getProd_name();
double getPrice();
}
ajax(ajax.createSettings()
.setType(“get”)
.setDataType(“jsonp”)
.setUrl(“”)
.done(新函数(){
公共无效f(){
MResponse resp=GWT.create(MResponse.class)
.load(getDataProperties());
字符串状态=resp.getStatus();
}
});

啊,我明白了,需要导入GQuery静态方法