Scala编译时错误:找不到参数证据$ 2的隐式函数:BodyWritable [Map [String,Object]] [英] Scala compile time error: No implicits found for parameter evidence$2: BodyWritable[Map[String, Object]]
本文介绍了Scala编译时错误:找不到参数证据$ 2的隐式函数:BodyWritable [Map [String,Object]]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在研究scala play框架应用程序.我正在尝试调用一个Web服务API,该API接收请求有效载荷数据如下
I am working on scala play framework application. I am trying to call a web service API which takes request payload data as follows
{
"toID": [
"email1@email.com",
"email2@email.com"
],
"fromID": "info@test.com",
"userID": "ervd12fdsfksdjnfn9832rbjfdsnf",
"mailContent": "Dear Sir, ..."
}
为此,我正在使用以下代码
And for this I am using following code
ws.url(Utils.messengerServiceUrl + "service/email")
.post(
Map("userID" -> userID, "mailContent" -> userData.message, "fromID" -> "info@test.com", "toID" -> userData.emails)).map { response =>
println(response.body, response.status)
}
因此对于此代码,编译器抱怨"toID"-> userData.emails 说未发现参数证据$ 2的隐式信息:BodyWritable [Map [String,Object]]
So for this code, compiler is complaining about "toID" -> userData.emails saying No implicits found for parameter evidence$2: BodyWritable[Map[String, Object]]
所以我的问题是如何使用WSClient发送此类数据?
So my question is how to send such data using WSClient?
推荐答案
您可以使用类似的案例类来实现
You can do it with case class like that
import play.api.libs.json._
case class Message(toID: Seq[String], fromID: String, userID: String, mailContent: String)
object Message {
implicit val writes: Writes[Message] = Json.writes[Message]
}
请注意带有隐式写入
这篇关于Scala编译时错误:找不到参数证据$ 2的隐式函数:BodyWritable [Map [String,Object]]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文