4
我有一個簡單的GWT應用程序需要從另一個服務器獲取一些JSON數據。我遵循了幾個教程來達到這一點。當我嘗試編譯它,我得到的錯誤與GWT使用JSONParser的問題
[錯誤] 44行:沒有源代碼可用於 型com.google.gwt.json.client.JSONValue;你忘了繼承 所需的模塊嗎? [錯誤]第44行:沒有源代碼可用於com.google.gwt.json.client.JSONParser類型;你忘了繼承 所需的模塊嗎? [錯誤]第46行:沒有源代碼可用於com.google.gwt.json.client.JSONArray類型;你忘了繼承 所需的模塊嗎? [錯誤]第49行:沒有源代碼可用於com.google.gwt.json.client.JSONObject類型;你忘了繼承 所需的模塊嗎?
我知道我不得不添加
<inherits name="com.google.gwt.http.HTTP" />
我.gwt.xml文件,但無法弄清楚如何添加,使其接受的JSON的東西。請問我錯過了什麼?
相關代碼:
private SearchResult[] parseResponse(String jsonResponse) {
ArrayList<SearchResult> retArray = new ArrayList<SearchResult>();
JSONValue jval = JSONParser.parseStrict(jsonResponse);
JSONArray resultArray = jval.isArray();
for(int i=0; i<resultArray.size(); i++) {
JSONObject resultObj = resultArray.get(i).isObject();
String title = resultObj.get("title").isString().stringValue();
JSONArray roleArray = resultObj.get("roles").isArray();
String roleNames = new String();
for(int j=0; j< roleArray.size(); j++) {
if(roleArray.get(j).isNumber().doubleValue() == 1.0) {
// this role is present
String currRole = Constants.getRoleNameForNum(j);
roleNames += currRole;
}
}
SearchResult sr = new SearchResult(title, roleNames);
retArray.add(sr);
}
return retArray.toArray(new SearchResult[0]);
}
private void doSearch() {
clearTable();
final String searchTerms = searchTextBox.getText().toLowerCase().trim();
searchTextBox.setFocus(true);
final int roleNum = roleChooserBox.getSelectedIndex();
final String roleName = roleChooserBox.getItemText(roleNum);
String url = JSON_URL + "?" + ROLE_TXT + roleNum + "&" + QUERY_TXT + "'" + searchTerms + "'";
url = URL.encode(url);
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
try {
Request request = builder.sendRequest(null, new RequestCallback() {
@Override
public void onError(Request request, Throwable exception) {
displayError("Couldnt' retrieve JSON");
}
@Override
public void onResponseReceived(Request request, Response response) {
if (200 == response.getStatusCode()) {
SearchResult[] results = parseResponse(response.getText());
updateTable(results, roleName);
} else {
displayError("Couldn't retrieve JSON (" + response.getStatusText()
+ ")");
}
}
});
} catch (RequestException e) {
displayError("Couldn't retrieve JSON");
}
`
你可以添加你的'SearchResult'類 – 2015-02-10 22:20:36
它只是一個bean。當它使用GWT RPC作爲測試時,一切正常,但當我試圖將其轉換爲使用REST API時,我遇到了問題。 – betseyb 2015-02-11 00:23:42
當我開始使用'com.google.gwt.json'時,我不必爲.gwt.xml文件添加任何內容。是否有可能缺少一些其他進口? – 2015-02-11 00:37:09