Encoding 控制器中=的意外解码

Encoding 控制器中=的意外解码,encoding,playframework,Encoding,Playframework,在前端,我使用以下数据执行jQueryPOST: [{name:“Kevin”,年龄:100,favoriteOperator:“=”}] 这篇文章点击了/sampleURL 在我的控制器中,我在帖子正文中使用: def submit = Action { implicit request => val maybeRequestAsFormUrlEncoded: Option[Map[String, Seq[String]]] =

在前端,我使用以下数据执行jQuery
POST

[{name:“Kevin”,年龄:100,favoriteOperator:“=”}]

这篇文章点击了
/sample
URL

在我的控制器中,我在帖子正文中使用:

  def submit = Action { implicit request => 
 val maybeRequestAsFormUrlEncoded: Option[Map[String, Seq[String]]] =  
                        request.body.asFormUrlEncoded
打印出的地图显示:
Map([{“name”:“Kevin”,“age”:100,“favoriteOperator”:“->List(“}])


为什么我的
favoriteOperator
显示为
“->列表(“
而不是
”=”

非常确定
asFormUrlEncoded
需要如下输入:

queryString=abc,def
anotherQueryString=blabla
然后将其转换为地图,如下所示:

Map("queryString" -> List("abc", "def"), "anotherQueryString" -> List("blabla"))
(实际上,我不太确定
abc、def
blabla
是否真的被反序列化到一个列表中,这个想法只是因为您在示例中得到了一个列表)。无论如何,重要的是,
asFormUrlEncoded
需要键值以=号分隔,这就是为什么字符串会这样分开。另请参阅

您可能希望查看正在使用的Json反序列化程序,因为您的请求具有Json格式:

也许您需要对
=
-字符进行URL编码?如果改用
%3D
,是否有效?