2013-05-09 20 views
0

在我的服務器端我使用Hibernate檢索數據設置,我不想在服務器端使用列表。使傑克遜序列化設置爲列表

我正在使用@OrderBy註釋,所以我的套件是在服務器上訂購的。

但是,當我將數據發送到瀏覽器並解析JSON時,我的套件在javascript中變得無序。 我可以以某種方式配置jackson ObjectMapper,或使用一些註釋來序列化我的設置爲列表?

,只需要改變{}爲[]在

我知道我可以創建其他DTO,但是這是一個很大的樣板。

是否有一些標誌或註釋可能觸發此類行爲?

編輯:

讓我們說我有:

{ 「A」, 「B」, 「C」, 「d」}

對我的代碼生成的服務器端,併發送到瀏覽器。 瀏覽器會收到相同的內容,但是當我評估它(eval(...)), 瀏覽器不把它視爲字符串,而是作爲地圖。

而當我迭代該映射它是無序的。

如果瀏覽器將接收陣列,即:

[ 「一」, 「B」, 「C」, 「d」]

在瀏覽器評估之後也仍然進行排序;

我希望JACKSON只使用[]而不是{}來設置集合。

希望我更加清楚現在

+1

一組將被序列化爲一個數組而不是一個對象,所以有一些其他的問題 – 2013-05-09 11:32:53

+1

你確定,你的設置真的是排序?我有時序列化TreeSet,並且序列化後我總是有排序的數據。檢查序列化如何與Hibernate的「sorted set」實現一起工作。你能提供一個例子,它看起來如何? – 2013-05-09 13:46:21

+1

'但是,當我將數據發送到瀏覽器並解析JSON時,我的集合在javascript中變得無序 - 您確定在轉換爲JS之後訂單沒有丟失*在將其解析爲對象之前,您是否打印出您在客戶端收到的數據? – Perception 2013-05-09 15:39:33

回答

0

請提供一些代碼和對象你是序列化。

此代碼:

{"a","b","c","d"} 

是不是一個有效的JSON。傑克遜總是序列化集合來

["a","b","c","d"]