5
A
回答
5
定義您自己的Serializer[Map[Any, Any]]
。
import net.liftweb.json._
import ext._
object MapSerializer extends Serializer[Map[Any, Any]] {
def serialize(implicit format: Formats): PartialFunction[Any, JValue] = {
case m: Map[_, _] => JObject(m.map({
case (k, v) => JField(
k match {
case ks: String => ks
case ks: Symbol => ks.name
case ks: Any => ks.toString
},
Extraction.decompose(v)
)
}).toList)
}
def deserialize(implicit format: Formats): PartialFunction[(TypeInfo, JValue), Map[Any, Any]] = {
sys.error("Not interested.")
}
}
然後將其添加到隱含的Formats
變量中。
implicit val formats = DefaultFormats + MapSerializer
就這樣。
0
除了前面的回答,您可以代替定義:
高清反序列化(隱式格式:格式):PartialFunction [(所屬類別,JValue),地圖[任何,任何] = { 地圖() }
這不會破壞任何其他工作映射的反序列化。
相關問題
- 1. 查詢字符串中使用SQL列值作爲關鍵字
- 2. GSON反序列化字符串[]爲一個字符串內部的字符串
- 3. EntityType沒有使用字符串作爲鍵定義的鍵
- 4. 如何使用ResolveComponentFactory(),但有一個字符串作爲一個關鍵
- 5. 使用字符串作爲字典鍵?
- 6. 將圖像序列化爲字符串
- 7. 將圖像序列化爲字符串
- 8. 傑克遜:(de)序列化使用任意非字符串鍵的地圖
- 9. 序列化字符串作爲字符串
- 10. 如何使用整數作爲關鍵字反序列化JSON?
- 11. 如何序列化一個雙字節字符的字符串?
- 12. 的Clojure:如何從一個地圖使用字符串鍵
- 13. 如何使用字符串作爲關鍵字參數?
- 14. 升壓登錄格式化使用相同字符串作爲關鍵字
- 15. 地圖中兩個字符串的鍵?
- 16. Typescript:在地圖中使用數字作爲關鍵字
- 17. jQuery - 反序列化一個序列化的字符串
- 18. 斯卡拉,玩:IntelliJ無法序列化地圖[字符串,列表[字符串]]
- 19. 字符串中使用關鍵字
- 20. 使用具有多個關鍵參數的L.sort排序字符串列表
- 21. 字符串轉換列表分爲地圖[字符串,列表]
- 22. 序列化字符串的
- 23. 傑克遜反序列化JSON地圖 - 地圖<字符串,地圖<String,字符串>>作爲一個對象
- 24. 強調所有關鍵字的一個字符串
- 25. MySQL - 使用字符串作爲主鍵
- 26. 將地圖字符串格式化爲數字列表
- 27. 如何轉換地圖[字符串,序列[字符串]以地圖[字符串,字符串]
- 28. 腓解序列化一個序列化JSON字符串
- 29. 序列化和反序列化一個DateTime字符串在UTC
- 30. 將兩個字符串列表轉換爲關鍵字參數
是不是隻限JSON對象只有鍵的字符串? – 2012-07-09 00:04:55
是的,JSON對象被限制爲只有鍵的字符串。實際上,它們是方法名稱,所以它很合適。 – 2012-07-09 01:11:50
是的,我的問題是你怎麼能(de)序列化沒有字符串作爲關鍵字的地圖,因爲有這個限制。 – Atol 2012-07-09 01:14:25