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