我遇到了以下问题 - 我有简单的GWT覆盖类型,我正在尝试将一个转换为客户端上的JSON字符串;我只是在做:
new JSONObject(this).toString();
转换有效,但它会为json字符串添加一个额外的错误键,例如:
{"key1":"value1", "key2":value2, "$H":1}
其中“$ H”:1与我的叠加类型中的任何内容都不对应。 知道为什么会这样吗?
对此表示感谢,谢谢。
答案 0 :(得分:1)
此问题已在此link
中定义$ H属性来自 实施 JavaScriptObject #hashCode()(in com.google.gwt.cire.client.impl.Impl#GetHashCode的(对象))。
在您的情况下,这是由于 AbstractEditableCell维护一张地图 值键的“视图数据”, 以及你对默认的使用(我猜) 提供Key实现 (SimpleProvidesKey)直接 返回该项目。
因此,在渲染时,EditTextCell 调用getViewData,查找 键入地图(因此需要 密钥的哈希码,因此调用 hashCode),关键是你的JSO (因此新的$ H财产)。
我相信提供一个ProvideKey 实施(在你的情况下,返回 例如,名称属性) Celltable将解决您的问题。