在过去的几天里,我一直试图让GWT解释JSONValue或从服务器传回来的XML字符串(使用PHP)。
我非常沮丧,因为我似乎无法得到任何工作。对于XML,我已经确认从PHP传递给GWT的String是一个正确的XML字符串。但是,当我尝试解析XML时,我得到了一堆空错误。
使用JSON,我从PHP获得以下内容:
Value: {"item":[{"ID":null, "Primary":null, "Secondary":null, "Date":null, "Region":null},{"ID":null, "Primary":null, "Secondary":null, "Date":null, "Region":null},{"ID":null, "Primary":null, "Secondary":null, "Date":null, "Region":null}]}
我不知道为什么值为NULL,但这就是GWT查找JSON的方式:
public void onChange(Widget sender) {
lb.setText("Date selected: " + calendar.getDate());
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String current = df.format(calendar.getDate());
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, URL.encode("http://www.kbehr.com/calendar/view_duty.php"));
try {
builder.sendRequest(current, new RequestCallback(){
public void onError(Request request, Throwable exception) {
requestFailed(exception);
}
public void onResponseReceived(Request request, Response response) {
String responseText = response.getText();
try {
JSONValue jsonValue = JSONParser.parse(responseText);
processJSON(jsonValue);
} catch (Exception e) {
Window.alert("Error: " + e);
}
}});
}catch (RequestException ex) {
requestFailed(ex);
}
}});
fp.add(calendar);
fp.add(lb);
}
public void processJSON(JSONValue messageXml) {
vp.clear();
vp.add(new Label("Value: " + messageXml));
RootPanel.get("slot2").add(vp);
}
有谁知道我在使用JSON做错了什么?我在PHP中执行json_encode($ array),我不知道如何在GWT中将其分解。
不幸的是,网上的例子不多......
谢谢!
答案 0 :(得分:1)
看起来您的第一个问题是服务器端(PHP)并且与GWT无关。只是去你的页面(http://www.kbehr.com/calendar/view_duty.php)应该返回某种数据,而不是一大堆空值(可能)。
至于如何在GWT中使用JSON解析器,转到here并开始阅读“2.在客户端代码中操作JSON数据”