我从服务器接收 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
我做错了什么?提前致谢!
最佳答案
(来 self 对 Generator threw an exception while rebinding 的回答,您在其中发布了一些来源:)
JavaScriptObject 的属性不能是非 JavaScript 类型。 GWT 生成的数组几乎看起来像 js 数组,但会缺少重要的类型细节,并且 java.util.List 根本不起作用 - JS 会很高兴地假装它会起作用,并返回一个JS 数组,它有一个名为 length
的属性 ,但没有名为 size
的方法 .
相反,请更改您的 getCoordinates
返回JsArray<Coordinate>
。
关于java - 无法在 GWT 中将 JSON 字符串解析为 Java/JavaScriptObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37589793/