Java Json字符串到数组
我正在尝试将JSON字符串提取到GWT中的对象数组中 我的JSON字符串如下: 我的代码:Java Json字符串到数组,java,json,gwt,Java,Json,Gwt,我正在尝试将JSON字符串提取到GWT中的对象数组中 我的JSON字符串如下: 我的代码: try { Request request = builder.sendRequest(null, new RequestCallback() { @Override public void onResponseReceived(Request request, Response response) { if (20
try {
Request request = builder.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response)
{
if (200 == response.getStatusCode()) {
Window.alert(response.getText());
updateTable(JsonUtils.<JsArray<JSONreceiverGW>>safeEval(response.getText()));
}else{
Window.alert("Couldn't retrieve JSON " + response.getStatusText());
}
}
@Override
public void onError(Request request, Throwable exception)
{
Window.alert("Couldn't retrieve JSON");
}
});
} catch (RequestException e) {
Window.alert("Couldn't retrieve JSON");
}
private void updateTable(JsArray<JSONreceiverGW> jsArray) {
for (int i = 0; i < jsArray.length(); i++) {
Window.alert(jsArray.get(i).getmatchID());
}
}
试试看{
Request-Request=builder.sendRequest(null,new-RequestCallback()){
@凌驾
接收到公共无效onResponseReceived(请求-请求,响应-响应)
{
if(200==response.getStatusCode()){
alert(response.getText());
updateTable(JsonUtils.safeEval(response.getText());
}否则{
alert(“无法检索JSON”+response.getStatusText());
}
}
@凌驾
公共void onError(请求,可丢弃异常)
{
alert(“无法检索JSON”);
}
});
}捕获(请求异常e){
alert(“无法检索JSON”);
}
私有void updateTable(JsArray JsArray){
对于(int i=0;i
我得到一个错误:
JSNI方法返回的不是int
“@com.google.gwt.core.client.JsArray::length()”:类型的JS值
未定义,应为int
您接收的不是数组,而是一个具有属性的对象,该属性的值为数组(该对象没有
length
属性,因此为undefined
)。您需要容器对象的JSO:
公共类JSONReceiveGWContainer扩展了JavaScriptObject{
受保护的JSONReceiveGWContainer(){}
public final JsArray getWvwMatches()/*-{返回this.wvw_matches;}-*/;
}
然后,您将执行以下操作(为了可读性,分为两行):
jsonreceivegwcontainer=JsonUtils.safeEval(response.getText());
updateTable(container.getWvwMatches());
try {
Request request = builder.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response)
{
if (200 == response.getStatusCode()) {
Window.alert(response.getText());
updateTable(JsonUtils.<JsArray<JSONreceiverGW>>safeEval(response.getText()));
}else{
Window.alert("Couldn't retrieve JSON " + response.getStatusText());
}
}
@Override
public void onError(Request request, Throwable exception)
{
Window.alert("Couldn't retrieve JSON");
}
});
} catch (RequestException e) {
Window.alert("Couldn't retrieve JSON");
}
private void updateTable(JsArray<JSONreceiverGW> jsArray) {
for (int i = 0; i < jsArray.length(); i++) {
Window.alert(jsArray.get(i).getmatchID());
}
}