【问题标题】:Can't parse JSON string to Java/JavaScriptObject in GWT无法在 GWT 中将 JSON 字符串解析为 Java/JavaScriptObject
【发布时间】:2016-06-02 10:52:19
【问题描述】:

我以 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

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

【问题讨论】:

标签: java json gwt gxt


【解决方案1】:

(来自我对Generator threw an exception while rebinding 的回答,您在其中发布了一些来源:)

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

改为将您的 getCoordinates 更改为返回 JsArray&lt;Coordinate&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    相关资源
    最近更新 更多