我通过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
我做错了什么?提前谢谢!
答案 0 :(得分:1)
(根据我对Generator threw an exception while rebinding的回答,您发布了一些来源:)
您不能将JavaScriptObject的属性设置为非JavaScript类型。 GWT生成的数组几乎看起来像js数组,但是会缺少重要的类型细节,java.util.List根本不起作用 - JS很乐意假装它会起作用,并且会返回一个JS数组,其属性名为length
,但方法名为size
。
相反,请将getCoordinates
更改为返回JsArray<Coordinate>
。