Comment transmettre jsonObj du code javascript dans getJson au code java handleJsonResponse. Si ma syntaxe est correcte, que faire avec JavaScriptObject?
Je sais que le jsonObj contient des données valides parce que alert (jsonObj.ResultSet.totalResultsAvailable) renvoie un grand nombre :) --- mais comment il n'est pas passé correctement en Java.Débogage de JSON dans GWT (serveur croisé)
EDIT: Je l'ai résolu ... en transmettant jsonObj.ResultSet.Result à la fonction java et en y travaillant à l'aide d'un JSONArray.
Merci.
public native static void getJson(int requestId, String url, MyClass handler) /*-{
alert(url);
var callback = "callback" + requestId;
var script = document.createElement("script");
script.setAttribute("src", url+callback);
script.setAttribute("type", "text/javascript");
window[callback] = function(jsonObj) { // jsonObj DOES contain data
[email protected]::handleJsonResponse(Lcom/google/gwt/core/client/JavaScriptObject;)(jsonObj);
window[callback + "done"] = true;
}
document.body.appendChild(script);
}-*/;
public void handleJsonResponse(JavaScriptObject jso) { // How to utilize JSO
if (jso == null) { // Now the code gets past here
Window.alert("Couldn't retrieve JSON");
return;
}
Window.alert(jso.toSource()); // Alerts 'null'
JSONArray array = new JSONArray(jso);
//Window.alert(""+array.size());
}
}