gpt4 book ai didi

json - 将 JsValue 转换为字符串

转载 作者:行者123 更新时间:2023-12-04 03:52:15 29 4
gpt4 key购买 nike

通读此文 article ,我不知道如何转换我的 Some(JsValue)到一个字符串。

例子:

val maybeString: Option[JsValue] = getSomeJsValue(); // returns Some(JsValue)

val str: String = maybeString match {
case Some(x) => x.as[String]
case _ => "0"
}

运行时错误:
play.api.Application$$anon$1: Execution exception[[JsResultException: JsResultException(errors:List((,List(ValidationErr
or(validate.error.expected.jsstring,WrappedArray())))))]]
at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.3]

最佳答案

你想组合多个选项,这就是 flatMap 的用途:

maybeString flatMap { json =>
json.asOpt[String] map { str =>
// do something with it
str
}
} getOrElse "0"

或者作为理解:
(for {
json <- maybeString
str <- json.asOpt[String]
} yield str).getOrElse("0")

我还建议使用 map 中的值并传递 Option ,因此 None 将由您的 Controller 处理并映射到 BadRequest例如。

关于json - 将 JsValue 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519913/

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