我正在构建一个树结构,一个对象引用它自己就像这样:
public class ProjectObjectOL extends JavaScriptObject {
protected ProjectObjectOL() { }
public final native boolean getStatus() /*-{ return this.status; }-*/;
public final native String getError() /*-{ return this.error_message; }-*/;
public final native JsArray<ProjectObjectOL> getChildren() /*-{ this.children; }-*/;
}
我的问题是我似乎无法得到对象的孩子。我已经测试了它,我很确定传回的JSON结构包含一个对象,该对象包含可以包含子等的那种类型的子数组。
...但是当试图访问有关子节点的最简单信息时,数组的长度,每次都返回0。我已经尝试过没有成功弄清楚它做错了什么,所有其他数据都返回正常,但这一件不会检索孩子。以下是我可以(直接)访问测试长度的示例:
JSONObject oResults = (JSONObject) JSONParser.parse(response.getText());
ProjectListOL testoutputOL = oResults.isObject().getJavaScriptObject().cast();
ProjectObjectOL testObject = testoutputOL.getProjectList().get(1);
Window.alert(testObject.getChildren().length()+"");
ProjectListOL包含一个ProjectObjectOLs数组。在上面的例子中,我只是抓住了一个我知道有孩子的人。我正在使用ColdFusion作为返回JSON对象的后端。再次,我已经多次输出这个对象,无论是在GWT还是在外部(直接从文件中转储JSON对象),验证对象确实已经设置了我期望它如何设置。
答案 0 :(得分:1)
我错过了一个明显的错误:
public final native JsArray<ProjectObjectOL> getChildren() /*-{ this.children; }-*/;
OOPS:
public final native JsArray<ProjectObjectOL> getChildren() /*-{ **return** this.children; }-*/;