【发布时间】:2019-07-03 11:43:12
【问题描述】:
我需要从List(Map()) 获取对象User(1,Nick Holland,25,None),但我不明白如何
val a = request.body.asFormUrlEncoded.toSeq.map(a => a.map(b => b))
List(Map(name -> ArrayBuffer(), age -> ArrayBuffer(), deleteItem -> ArrayBuffer(User(1,Nick Holland,25,None)), action -> ArrayBuffer(remove)))
【问题讨论】:
-
你能解释一下你真正的问题吗,你到底不明白什么? - 我的意思是,我怀疑你的列表总是只有一个元素,如果它是空的,如果有 2+ 值会发生什么? - 内部地图总是有相同的键?或者您确定密钥
deleteItem将永远存在? - 值将始终是用户的序列?再次,当有很多元素时会发生什么? - 你想得到什么值?,你只想要一个带有单个元素的val?,你想提取一个满足条件的所有用户的列表吗? - 最后,你尝试了什么? -
另外,我认为这与 Play 无关,除了您的列表来自请求。您可以只提供示例输入 (就像您已经做过的那样) 并解释预期的输出。您可以删除 Play 标记并将其保留为 Scala 唯一问题。 - 顺便说一句,我不使用Play*,但这个
toSeq.map(a => a.map(b => b))对我来说似乎没有必要,至少maps 只是身份,不确定是否toSeq也是多余的。 -
问题是这样的:我正在尝试使用表单对按钮进行编程(导入 play.api.data.Form,play.api.data.Forms._)有两个按钮“添加”和“删除”。对于“添加”按钮输入必须填写。对于“删除”并不重要。当您单击“删除”按钮时,会发送一个带有空字段的 POST 请求。年龄和姓名。
name -> ArrayBuffer (), age -> ArrayBuffer ().分别为val formData: BasicForm = BasicForm.form.bindFromRequest.get所以无法获取表单的内容,因为 Empty 的年龄和姓名给出 None。 -
那么,为什么要使用 List 呢?如果总是有一个元素?,如果字段的类型不同,为什么不使用
case class(with Optional fields) 而不是Map? - 正如我之前所说,我不使用游戏,所以我不是 100% 确定。但我认为您的请求输入数据建模错误。
标签: scala playframework