【发布时间】:2020-07-01 08:28:57
【问题描述】:
正在播放 ws 并且必须将请求参数准备为 {"initVideoUploadParams": {"videoMetadataParams":{"metadata":{"name":"","description":""}}}} 。尝试了link 中给出的解决方案,但没有奏效,因为我的情况与该问题不相似。 下面是代码sn-p
ws.url(savaUrl+configObj.get[String]("kaltura.init"))
.post(Map("initVideoUploadParams" -> InitVideoUploadParams(fileName,fileName)))
还有案例类
case class InitVideoUploadParams(name:String,desc:String)
object InitVideoUploadParams {
implicit object InitVideoUploadParamsWrites {
def writes(name:String,desc:String): JsObject = Json.obj(
"videoMetadataParams" -> VideoMetadataParams(Utils.createVideoParamsMap(name,desc)).metadata
) } }
case class VideoMetadataParams(metadata: Map[String, String])
object VideoMetadataParams { implicit object VideoMetadataParamsWrites {
def writes(metadata:Map[String,String]): JsObject = Json.obj(
"metadata" -> metadata
) } }
玩过documentation但无法实现。 帮助我了解我的代码有什么问题。
【问题讨论】:
-
您的案例类看起来有问题。你确定它应该是一张地图吗?在您链接的示例中,它看起来像这样: case class Message(toID: Seq[String], fromID: String, userID: String, mailContent: String) object Message {implicit val writes: Writes[Message] = Json.writes[Message ] }
-
我想要的最终请求 JSON 是 {"initVideoUploadParams": {"videoMetadataParams":{"metadata":{"name":"","description":""}}}} 所以我为元数据添加了 Map[String,String]。如果不是地图,那么我还应该使用什么? @GamingFelix
-
在示例中,地图是 json。所以 JSON 变成了贴图。
标签: json scala playframework ws