【发布时间】:2021-02-06 12:00:22
【问题描述】:
我有一个带有 json 属性的字符串,其中包含破折号。我想将其转换为带有下划线字段的对象。我尝试使用 Json4s 库但出现异常。
Exception in thread "main" org.json4s.package$MappingException: No usable value for some_field
Did not find value which can be converted into java.lang.String
您能帮我为带有破折号的字段编写一些自定义策略吗?
转换代码:
import org.json4s.native.JsonMethods.parse
object Converter extends App {
case class Key(some_field: String, some_other_field: String)
def jsonToObject[A](data: String)(implicit manifest: Manifest[A]): A = {
import org.json4s.DefaultFormats
implicit val formats = DefaultFormats
parse(data).extract[A]
}
val input = "{\"some-field\":\"first\",\"some-other-field\":\"second\"}"
val someObject = jsonToObject[Key](input)
println(s"${someObject.some_field} ${someObject.some_other_field}")
}
【问题讨论】:
-
注意:Json4s 是vulnerable under DoS/DoW attacks!所以不要用它来解析不受信任的输入。