0

以下代码

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”。查看在JSONArrayPatchergwt-test-utils 中,似乎完全忽略了给构造函数的值。

有没有办法让这些行打印“1”?也许有办法修补构造函数JSONArray

4

1 回答 1

0

JSONArray无关JsArrayMixedJSONArrayorg.json.JSONArray并且JsArrayMixed是类型的 gwt 客户端对象com.google.gwt.core.client.JsArrayMixed。这些完全来自不同的类层次结构,以至于它们不仅相互理解。

JSONArray如果您使用JSONObjectinstance 或其他构造它,可能会起作用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

于 2014-07-08T12:41:18.273 回答