不知道如何将JArray(List(JString(dds3), JString(sdds)))转换为类java.lan


~ pathPrefix("system") {
post {
entity(as[JValue]) { system =>
val newPerms = for {
sitePerms <- findAllPermissions((system  "siteId").extract[String])
} yield {
sitePerms.groupBy(_.userId).mapValues(_.map(_.permissionType).toSet)
}.flatMap { case (userId, perms) =>
val systemId = (system  "id").extract[String]
perms.map(Permission(userId, systemId, _, "system"))
}
onComplete(newPerms.flatMap(addPermissions)) {
case Success(_) => complete(StatusCodes.NoContent)
case Failure(error) => failWith(error)
}
}

请求正文

[{
"name": "dds3",
"description": "",
"siteId": "abs",
"companyId": "local"
},
{
"name": "dds3",
"description": "",
"siteId": "abc",
"companyId": "local"
}]

错误:

The request content was malformed:
No usable value for name
Do not know how to convert JArray(List(JString(dds3), JString(sdds))) into class java.lang.String

我想从请求正文传递数组列表,但不知道如何在 scala 中做到这一点,任何人都可以帮我吗?

最简单的选择是让entity指令为您取消选取数据:

case class System(
name: String, 
description: String,
siteId: String,
companyId: String,
)
entity(as[List[System]]) { system =>

system将包含可以按常规方式处理的System对象的解析列表。

最新更新