Java 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

我正在尝试将JSON字符串提取到GWT中的对象数组中

我的JSON字符串如下:

我的代码:

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


 }