无法将JSON字符串解析为GWT中的Java / JavaScriptObject

时间:2016-06-02 10:52:19

标签: java json gwt gxt

我通过JSON从服务器接收数据并使用JsonUtils(GWT)进行解析。它们看起来像这样:

[{"id":26,"name":"Circle1","description":"Test","type":"CIRCLE","coordinates":[{"latitude":50.364736755649716,"longitude":30.120391845703125}],"radius":6577.427847903551,"userId":1}]

我使用此代码解析它:

JsArray<Geofence> geofenceJsArray = JsonUtils.safeEval(response.getText());

但我无法访问坐标列表。当我打电话

geofenceJsArray.get(0).getCoordinates().size()

我在浏览器的控制台中收到此错误消息:

Uncaught TypeError: $getCoordinates_1_g$(...).size_54_g$ is not a function

我做错了什么?提前谢谢!

1 个答案:

答案 0 :(得分:1)

(根据我对Generator threw an exception while rebinding的回答,您发布了一些来源:)

您不能将JavaScriptObject的属性设置为非JavaScript类型。 GWT生成的数组几乎看起来像js数组,但是会缺少重要的类型细节,java.util.List根本不起作用 - JS很乐意假装它会起作用,并且会返回一个JS数组,其属性名为length,但方法名为size

相反,请将getCoordinates更改为返回JsArray<Coordinate>