以下代码
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArrayMixed;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONString;
[...]
JsArrayMixed jsArray = JavaScriptObject.createArray().cast();
jsArray.push("something");
JSONArray jsonArray = new JSONArray(jsArray);
System.out.println(jsonArray.size());
当使用gwt-test-utils运行时,将打印“0”而不是预期的“1”。查看gwt-test-utils中的JSONArrayPatcher
,似乎完全忽略了赋予构造函数的值。
有没有办法让这些行打印为“1”?也许有办法修补JSONArray
的构造函数?
答案 0 :(得分:0)
JSONArray
与JsArrayMixed
无关。 JSONArray
为org.json.JSONArray
,JsArrayMixed
为com.google.gwt.core.client.JsArrayMixed
类型的gwt客户端对象。这些是完全来自不同的阶级层次结构,他们不仅仅是相互理解。
JSONArray
如果您使用JSONObject
个实例或其他JSONArray
构建它,则可能有效。
你必须发明另一种方法来构建混合对象。
我的消息来源:
[1] http://www.json.org/javadoc/org/json/JSONArray.html
[2] http://srcrr.com/java/google/gwt/2.2/reference/com/google/gwt/core/client/JsArrayMixed.html