gpt4 book ai didi

scala - 使用lift-json序列化一个没有字符串作为键的 map

转载 作者:行者123 更新时间:2023-12-04 19:14:33 24 4
gpt4 key购买 nike

似乎lift-json 仅限于以字符串作为键的映射。

绕过此限制的最佳方法是什么?

最佳答案

定义您自己的 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

就这样。

关于scala - 使用lift-json序列化一个没有字符串作为键的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11387612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com