2011-06-03 40 views
1

我遇到了以下問題 - 我有簡單的GWT覆蓋類型,我試圖將其中一個轉換爲客戶端上的JSON字符串;我只是做:GWT JSONObject在將覆蓋類型轉換爲json時添加了一個不正確的鍵字符串

new JSONObject(this).toString(); 

轉換工作,但它增加了一個額外的,不正確的密鑰將JSON字符串,如:

{"key1":"value1", "key2":value2, "$H":1} 

其中 「$ H」:1不對應於我的覆蓋類型中的任何內容。 任何想法,爲什麼這是?

任何幫助表示讚賞,謝謝。

回答

1

這個問題在這個link

的$ H財產來自 實施 JavaScriptObject#hashCode()方法(在 com.google.gwt.cire.client.impl.Impl#定義GetHashCode的(對象))。

在你的情況,這是由於 AbstractEditableCell維護映射值鍵的「查看數據」的 , 和您的默認 ProvidesKey實現 (SimpleProvidesKey)直接 收益的使用(我猜)該項目。

因此,渲染時,該EditTextCell 調用getViewData,它看起來了 鍵在地圖(因此需要 哈希碼的關鍵,因此調用 的hashCode),關鍵是你的JSO (因此新的$ H屬性)。

我相信,給人一種ProvidesKey 實現(在你的情況下,返回 name屬性爲例)的 Celltable將解決您的問題。

相關問題