这是我要转换为Json的案例类
case class Cart(cart_id :UUID, cart_entries :Map[String,CartEntry]){
}
我正在使用net.liftweb.json ._
implicit val formats = UUID
val json = write(cart) //cart is Cart object with values for both attributes cart_id = 68eb787f-746c-4320-9ef4-8b5c7f0d7e21
println(json)
json返回的内容如下:
{"cart_id":{},"cart_entries":[{"_1":"ABC","_2":{"sku_id":"ABC","quantity":12,"price":{"bigDecimal":{},"mc":{}}}}]}
请注意,cart_id的值为空{},我希望如下:
{"cart_id":{68eb787f-746c-4320-9ef4-8b5c7f0d7e21},"cart_entries":[{"_1":"ABC","_2":{"sku_id":"ABC","quantity":12,"price":{"bigDecimal":{},"mc":{}}}}]}
对于UUID,我使用了其他api,例如fastxml all return“”。 我该如何解决这个问题?
答案 0 :(得分:2)
虽然您的Cart
是由lift-json提供序列化程序的类型组成的案例类,但UUID
类可能不是(我假设您使用java.util.UUID
)。因此,你需要write your own serializer & deserializer,这样的事情(未经测试):
def serialize(implicit format: Formats): PartialFunction[Any, JValue] = {
case x: UUID => JString(x.toString)
}