2013-03-16 1 views
1

Я ищу лучший способ в GWT, чтобы получить доступ к службе отдыха 3party json и быстро разобрать его ответ. Служба предлагает отдых параметра callback, и пример они дали нам использует jQuery.jsonp:Как использовать услуги 3party json в GWT

$.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) {} 
}); 

ответ

0

Хотя GWT поставляется с JsonpRequestBuilder для выполнения запросов с помощью тегов сценария и AutoBeans для обработки ответов JSon и генерируют реализации Java, Я предпочитаю gwtqueryAjax и DataBinding из-за его простоты.

В вашем случае вы можете иметь почти тот же синтаксис, что ваш провайдер дал вам:

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"); 
     } 
    }); 

Если вы предпочитаете использовать строителей, потому что вы хотите получить/сеттеры ваш код может выглядеть следующим образом:

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(); 
     } 
    }); 
+1

А, я понял, нужно импортировать статические методы GQuery – 2013-03-16 12:54:14