将频繁更改的 JSON 值映射到 Scala 中的相应元素

Map frequently changing JSON value to corresponding element in Scala

我有一个 JSON 值,例如

{
    "valType": "Integer",
    "data": 5
}

{
    "valType": "Integer",
    "data": [2, 3]
}

{
    "valType": "String",
    "data": "value1"
}

{
    "valType": "String",
    "data": ["string1", "string2"]
}

data 键的值正在改变。当我尝试使用

在 Scala 中映射这些内容时
class value {
    var valType: String = _
    var data: Any = _
}

使用 ObjectMapper,效果很好。

但是在尝试使用 lift-json 时,使用 class

case class value(valType: String, data: Any) {}

,报错

Exception in thread "main" net.liftweb.json.MappingException: No usable value for data
No information known about type

如何在 lift-json 中解决同样的问题?

版本: 斯卡拉:2.11 升力-json:2.6

您必须编写自定义序列化程序,根据 "valType" 字段的内容解析不同的 "value" 字段。

lift-json 自述文件的 Serializing non-supported types 部分介绍了如何编写序列化程序。