2012-10-22 41 views
3

JSONObject包類org.codehaus.groovy.grails.web.json不執行Serializable製作JSONObject可序列化

我想讓這個對象可序列化,因爲我在應用程序服務器之間使用會話複製,並且JSONObject被保存在會話中。

我有兩個選項來實現這一點:

  1. 子類JSONObject s表示實現Serializable
  2. 使用toString()方法JSONObject對象,同時保存會話中的此對象。

任何人都可以請建議我應該使用哪兩個選項之一,什麼原因?

回答

6

我認爲toString方法是打算在這裏使用的。該方法已經返回適合傳輸或存儲的對象的JSON文本。

+0

在會話中保存對象時使用toString()很好,但是當我從會話中取回該對象時,我將得到該字符串,然後我需要從該字符串構造JSONObject。 – user1180463

+0

@ user1180463對,你可以使用'JSONObject(java.lang.String string)'構造函數來做到這一點。我不知道這是否會對序列化/反序列化對象有更多或更少的性能影響。這兩種方法都會產生一些對象創建的開銷。 –

1

您不需要對JSON進行序列化,它已經以可存儲的形式(對JSON的整點進行排序)。 Grails有JSON解析器和「slurpers」,可以隨時爲您使用。因此,只需將JSON數據作爲字符串存儲並使用解析器將其讀迴文件即可。